Mitme seotud andmetabeli pealt kokku ehitatud veebihaldusliidese keerukaimaks kohaks on valitava tunnuse muutmine rippmenüü kaudu – et muutmisel oleks olemasolev valik ette keritud ning võimalik muutus ka õigesti kirja läheks.
Muus osas on muutmine suhteliselt sarnane konspekti algusosas oleva teadetetabeli andmete muutmisega. Vaid SQL-päringud on HTMLi koodist välja viidud ning andmeid näidatakse abifunktsioonid.php-failist tulnud muutujate kaudu.
Kaupade loetelu kuvamisel on kõigepealt iga kauba ees viide kustutamiseks või muutmiseks. Andmete kuvamisel vaadatakse, kas aadressiribalt on saabunud parameeter nimega muutmisid ning kas muudetava kauba id kattub parasjagu näidatava kauba id-ga.
[crayon-68106eba9f1f8713955524/]
Kui jah, siis kuvatakse rida tavalisega võrreldes erinevalt, sätitakse andmed sellisele kujule, et neid veebilehelt muuta saab. Nimetus ja hind tulevad nähtavale tekstivälja paigutatult. Kaubagrupp aga paigutatakse sellisesse rippmenüüsse, kus sobiv valik on juba ette keeratud. Selleks tuleb vastavat abifunktsiooni mõnevõrra täiendada, millest edaspidi allpool.
[crayon-68106eba9f1fe910223764/]
Kauba andmete näitamise loetellu tuleb parameetriks juurde kaubagrupi_id, et oleks võimalik selle abil muutmise ajal rippmenüüst sobivat valikut näidata.
[crayon-68106eba9f200513791882/]
Rippmenüüle tuleb juurde täiendav parameeter nimega $valitudid. Nagu eelnevalt otsimise juures nii ka siin võimaldab lisandunud parameetrile vaikeväärtuse jätmine kasutada funktsiooni samaaegselt nii senini kehtinud kahe parameetriga kohas (SELECT-lause ning valiku HTMLi sees olev nimi) kui ka uues kohas, kus antakse ette id, millist rida andmete seast ette kerida. Kui id-parameeter puudub, siis antakse sellele vaikimisi väärtuseks tühi tekst. Ning kui sellise väärtusega id-d pole (üldjuhul ei tohiks olla), siis lihtsalt eraldi ei valitagi midagi välja, rippmenüü tuleb nähtavale nii nagu ennegi. Kui aga funktsioonile anti ettekeritav id ning sarnane id leidub ka näidatavate andmete seas, siis lisatakse vastavale valikule parameeter selected=’selected’. Koodi mugavamaks kirjutamiseks on see toimetus jagatud kolme ritta. Vaikimisi pannakse lisandit hoidvale muutujale väärtuseks tühi tekst, st. et selle muutuja väärtuse lisamine ei muuda väljundit kuhugi. Järgmise tingimusega vaadatakse, et kas sinna on selected-atribuut põhjust sisse kirjutada. Ning kui kirjutati, siis jõuab see kolmandal real ilusti ka vastava option-rea kirjeldusse.
[crayon-68106eba9f202600449369/]
[crayon-68106eba9f204429273893/]
Ning nende toimetuste tulemusena tekib siis valitud rida juba muudetaval kujul ekraanile. Muutused küll veel kuhugile ei jõua, aga eks see tuleb siis järgmise sammuna üles tähendada.
Kauba andmete muutmiseks lisatakse taas sobiv funktsioon. Kindlasti tuleb muutmise juurest kaasa saata muudetava kauba id. Selleks oli ennist vormi sees rida
[crayon-68106eba9f205234123403/]
kus see id kaasa pandi. Edasi koostatakse abifunktsioonide alla UPDATE-lause, kus id-numbriga määratud real vanad andmed uutega üle kirjutatakse.
[crayon-68106eba9f20a860786627/]
Kaupade lehe juures tuleb algusesse juurde kontroll – et kui vajutati muutmisnupule, siis käivitatakse muutmisfunktsioon koos ette antud uute andmetega.
[crayon-68106eba9f20c804243191/]
Ning võibki uue hinna kirjutada ja muudki parandused vajadusel siise viia.
Muutmisnupu vajutamise järgsel lehe avamisel ongi uuel kujul andmed siis nähtavad.
Järeltegemise hõlbustamiseks siis halduseks vajalike failide koodid tervikuna. kaubahaldus.php
[crayon-68106eba9f20e800748185/]
ning abifunktsioonid.php
[crayon-68106eba9f211412541701/]

Ülesanne:
Antud konspekti järgi sul on tekkinud 3 faili:
abifunktsioonid.php
kaubaotsing.php
kaubahaldus.php
- Tee üldine koond veebileht – index.php, mis võimaldab KÕIK CRUD operatsioonid kaupadega, kaupade sorteerimine ning otsing.
koodilõigud on kommenteeritud.
- Tühjad kaubad ja kaubagrupid ei tohi lisada.
- Kaubagrupide lisamises kontrollitakse, et nad ei dubleeri.
- Lisada header ja kasutajasõbralik css (tabel peab olema responsive)