Haldamine

Seni sortisime ja otsisime neid andmeid, mis juba andmetabelis olemas. Kui andmete sisestamine käib sisevõrgus oleva süsteemi kaudu, siis võibki veebiliides nõnda lihtsa osaga piirduda. Kui aga veebi kaudu tuleb ka andmeid lisada ja muuta, siis vaja mõnevõrra rohkem koodi kirjutada. 

Kuna kaubagrupid on määratud eraldi tabelis ning võimaluse korral paigutatakse kaup juba olemasolevasse gruppi, siis paremaks mooduseks on kaubagrupi nime mitte tekstina sisse kirjutada, vaid olemasolevate hulgast rippmenüüst valida. Ning kui sobiv grupp puudub, saab selle pigem kusagilt eraldi kohast juurde panna – nii et seda edaspidi kõikide lisatavate kaupade juures kasutada saab.

Kood sellise lisamisvormi loomiseks võiks välja näha nagu allpool. Nimetus ja nind tulevad tekstiväljadest. Tasub märkida, et nii kauba lisamise nupule kui ka grupi lisamise nupule on pandud nimi. Sellisel puhul saab serverisse saadetud andmete põhjalt vaadata, et millisele nupule vajutati. Vormi action-parameetris määratud veebilehele saadetakse kaasa nupu nimega parameeter, mille väärtuseks on nupu peale kirjutatud tekst. 

Rippmenüü loomiseks on tehtud eraldi alamprogramm. Kuna tegemist suhteliselt levinud ja korduva toiminguga, siis on otstarbekas SQL-lause põhjal rippmenüü loomine eraldi alamprogrammi kirjutada ning seda hiljem vajalikes kohtades kasutada. Üks põhjus, et nõnda vähem koodi kirjutada. Teine põhjus, et kui nõnda saab menüü loomise korra viisakalt valmis tehtud, siis järgmistel kordadel pole enam vaja karta, et äkki sinna mõni näpuviga kergesti sisse satub.

[crayon-68106b08a4ac8748559263/]

Rippmenüü loomine ise ikka abifunktsioonide failis. Funktsioonile antakse ette kaks parameetrit. Esimene on SQLi SELECT-lause, millest väljastatud tabel annab rippmenüüle valiku id-d ja nähtavad väärtused. Teiseks parameetriks on select-elemendi nimi HTMLi vormis. HTMLi tekst lihtsalt pannakse jupi kaupa kokku ning salvestatakse muutujas $tulemus. Lõpuks antakse sealt ka funktsioonist välja.

[crayon-68106b08a4acd037937341/]

Kuna püüame halduslehe enese võimalikult programmikoodist puhta hoida, tuleb abifunktsioone veel mõned juurde kirjutada. Grupi lisamiseks käsklus ühe grupi lisamiseks kaubagruppide tabelisse.

[crayon-68106b08a4acf843301871/]

Kauba lisamiseks käsklus kaupade tabelisse rea panekuks. Kusjuures eeldatakse, et parameetrina juba tuleb kaubagrupi_id, kuhu sisse lisatav kaup kuulub. Kuna me eelnev select-valik sai nõnda tehtud, et näha on grupi nimi, kuid serverisse saadetakse kaubagrupi id, siis on nende andmete salvestamine lihtne.

[crayon-68106b08a4ad1481341807/]

Et pärast andmete sisestamist teaks kaubahalduse leht abifunktsioonide alt sobiva käskluse välja kutsuda, tuleb kaubahalduse lehe algusesse lisada kontrollid saabuvate andmete kohta. Kui oli vajutatud nupule nimega grupilisamine, siis jõuab serverisse parameeter sama nimega ning selle järgi teab välja kutsuda grupi lisamise funktsiooni. Samuti tasub käituda kauba lisamise juures. Loodud abifunktsioonile tuleb ette anda kõik lisamiseks vajalikud andmed, mis $_REQUEST muutuja kaudu sisestusväljadest kohale jõuavad.

[crayon-68106b08a4ad3687630014/]

Juurde ka kauba kustutamine. Kusjuures nagu ikka, on viisakas enne küsida, kas ikka tahetakse vastavat kaupa kustutada – et poleks kogemata vajutuse tõttu andmed kaduma läinud. Kõigepealt tuleb siis iga kauba ette vastav kustutusviide teha koos Javaskripti abil küsimisega.

[crayon-68106b08a4ad5282314450/]

Kaubahalduse lehe uuel laadimisel kontrollitakse, et kas äkki on saadetud kaasa kustutusid, mille järgi kauba kustutamine otsustada. Kui jah, siis kutsutakse abifunktsioonide alt välja vastav käsklus.

[crayon-68106b08a4ad6077986355/]
[crayon-68106b08a4ada095233591/]