{"id":303,"date":"2023-03-24T21:32:27","date_gmt":"2023-03-24T21:32:27","guid":{"rendered":"https:\/\/tarkvara.thkit.ee\/veeb\/?page_id=303"},"modified":"2024-12-09T08:50:33","modified_gmt":"2024-12-09T08:50:33","slug":"andmete-muutmine","status":"publish","type":"page","link":"https:\/\/tarkvara.thkit.ee\/veeb\/andmete-muutmine\/","title":{"rendered":"Andmete muutmine"},"content":{"rendered":"\n<p>Mitme seotud andmetabeli pealt kokku ehitatud veebihaldusliidese keerukaimaks kohaks on valitava tunnuse muutmine rippmen\u00fc\u00fc kaudu &#8211; et muutmisel oleks olemasolev valik ette keritud ning v\u00f5imalik muutus ka \u00f5igesti kirja l\u00e4heks.<br>Muus osas on muutmine suhteliselt sarnane konspekti algusosas oleva teadetetabeli andmete muutmisega. Vaid SQL-p\u00e4ringud on HTMLi koodist v\u00e4lja viidud ning andmeid n\u00e4idatakse abifunktsioonid.php-failist tulnud muutujate kaudu.<br>Kaupade loetelu kuvamisel on k\u00f5igepealt iga kauba ees viide kustutamiseks v\u00f5i muutmiseks. Andmete kuvamisel vaadatakse, kas aadressiribalt on saabunud parameeter nimega muutmisid ning kas muudetava kauba id kattub parasjagu n\u00e4idatava kauba id-ga.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n &lt;?php if(isSet($_REQUEST&#x5B;&quot;muutmisid&quot;]) &amp;&amp;  \nintval($_REQUEST&#x5B;&quot;muutmisid&quot;])==$kaup-&gt;id): ?&gt; \n\n<\/pre><\/div>\n\n\n<p>Kui jah, siis kuvatakse rida tavalisega v\u00f5rreldes erinevalt, s\u00e4titakse andmed sellisele kujule, et neid veebilehelt muuta saab. Nimetus ja hind tulevad n\u00e4htavale tekstiv\u00e4lja paigutatult. Kaubagrupp aga paigutatakse sellisesse rippmen\u00fc\u00fcsse, kus sobiv valik on juba ette keeratud. Selleks tuleb vastavat abifunktsiooni m\u00f5nev\u00f5rra t\u00e4iendada, millest edaspidi allpool.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n &lt;table&gt; \n &lt;tr&gt; \n &lt;th&gt;Haldus&lt;\/th&gt; \n &lt;th&gt;Nimetus&lt;\/th&gt; \n &lt;th&gt;Kaubagrupp&lt;\/th&gt; \n &lt;th&gt;Hind&lt;\/th&gt; \n &lt;\/tr&gt; \n &lt;?php foreach($kaubad as $kaup): ?&gt; \n &lt;tr&gt; \n &lt;?php if(isSet($_REQUEST&#x5B;&quot;muutmisid&quot;]) &amp;&amp; \n intval($_REQUEST&#x5B;&quot;muutmisid&quot;])==$kaup-&gt;id): ?&gt;  &lt;td&gt; \n &lt;input type=&quot;submit&quot; name=&quot;muutmine&quot; value=&quot;Muuda&quot; \/&gt; \n &lt;input type=&quot;submit&quot; name=&quot;katkestus&quot; value=&quot;Katkesta&quot; \/&gt;  &lt;input type=&quot;hidden&quot; name=&quot;muudetudid&quot; value=&quot;&lt;?=$kaup-&gt;id ?&gt;&quot; \/&gt;  &lt;\/td&gt; \n &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;nimetus&quot; value=&quot;&lt;?=$kaup-&gt;nimetus ?&gt;&quot; \/&gt;&lt;\/td&gt;  &lt;td&gt;&lt;?php \n echo looRippMenyy(&quot;SELECT id, grupinimi FROM kaubagrupid&quot;,  &quot;kaubagrupi_id&quot;, $kaup-&gt;kaubagrupi_id);  ?&gt;&lt;\/td&gt; \n &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;hind&quot; value=&quot;&lt;?=$kaup-&gt;hind ?&gt;&quot; \/&gt;&lt;\/td&gt;  &lt;?php else: ?&gt;  \n &lt;td&gt;&lt;a href=&quot;kaubahaldus.php?kustutusid=&lt;?=$kaup-&gt;id ?&gt;&quot;  onclick=&quot;return confirm(&#039;Kas ikka soovid kustutada?&#039;)&quot;&gt;x&lt;\/a&gt;  &lt;a href=&quot;kaubahaldus.php?muutmisid=&lt;?=$kaup-&gt;id ?&gt;&quot;&gt;m&lt;\/a&gt;  &lt;\/td&gt; \n &lt;td&gt;&lt;?=$kaup-&gt;nimetus ?&gt;&lt;\/td&gt; \n &lt;td&gt;&lt;?=$kaup-&gt;grupinimi ?&gt;&lt;\/td&gt; \n &lt;td&gt;&lt;?=$kaup-&gt;hind ?&gt;&lt;\/td&gt; \n &lt;?php endif ?&gt; \n &lt;\/tr&gt; \n &lt;?php endforeach; ?&gt; \n &lt;\/table&gt; \n\n<\/pre><\/div>\n\n\n<p>Kauba andmete n\u00e4itamise loetellu tuleb parameetriks juurde kaubagrupi_id, et oleks v\u00f5imalik selle abil muutmise ajal rippmen\u00fc\u00fcst sobivat valikut n\u00e4idata.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n function kysiKaupadeAndmed($sorttulp=&quot;nimetus&quot;, $otsisona=&quot;&quot;){ \n global $yhendus; \n $lubatudtulbad=array(&quot;nimetus&quot;, &quot;grupinimi&quot;, &quot;hind&quot;); \n if(!in_array($sorttulp, $lubatudtulbad)){ \n return &quot;lubamatu tulp&quot;; \n } \n $otsisona=addslashes(stripslashes($otsisona)); \n $kask=$yhendus-&gt;prepare(&quot;SELECT kaubad.id, nimetus, grupinimi, kaubagrupi_id, hind  FROM kaubad, kaubagrupid \n WHERE kaubad.kaubagrupi_id=kaubagrupid.id \n AND (nimetus LIKE &#039;%$otsisona%&#039; OR grupinimi LIKE &#039;%$otsisona%&#039;)  ORDER BY $sorttulp&quot;); \n $kask-&gt;bind_result($id, $nimetus, $grupinimi, $kaubagrupi_id, $hind);  $kask-&gt;execute(); \n $hoidla=array(); \n while($kask-&gt;fetch()){ \n $kaup=new stdClass(); \n $kaup-&gt;id=$id; \n $kaup-&gt;nimetus=htmlspecialchars($nimetus); \n $kaup-&gt;grupinimi=htmlspecialchars($grupinimi); \n $kaup-&gt;kaubagrupi_id=$kaubagrupi_id; \n $kaup-&gt;hind=$hind; \n array_push($hoidla, $kaup); \n } \n return $hoidla; \n } \n\n<\/pre><\/div>\n\n\n<p>Rippmen\u00fc\u00fcle tuleb juurde t\u00e4iendav parameeter nimega $valitudid. Nagu eelnevalt otsimise juures nii ka siin v\u00f5imaldab lisandunud parameetrile vaikev\u00e4\u00e4rtuse j\u00e4tmine 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\u00e4\u00e4rtuseks t\u00fchi tekst. Ning kui sellise v\u00e4\u00e4rtusega id-d pole (\u00fcldjuhul ei tohiks olla), siis lihtsalt eraldi ei valitagi midagi v\u00e4lja, rippmen\u00fc\u00fc tuleb n\u00e4htavale nii nagu ennegi. Kui aga funktsioonile anti ettekeritav id ning sarnane id leidub ka n\u00e4idatavate andmete seas, siis lisatakse vastavale valikule parameeter selected=&#8217;selected&#8217;. Koodi mugavamaks kirjutamiseks on see toimetus jagatud kolme ritta. Vaikimisi pannakse lisandit hoidvale muutujale v\u00e4\u00e4rtuseks t\u00fchi tekst, st. et selle muutuja v\u00e4\u00e4rtuse lisamine ei muuda v\u00e4ljundit kuhugi. J\u00e4rgmise tingimusega vaadatakse, et kas sinna on selected-atribuut p\u00f5hjust sisse kirjutada. Ning kui kirjutati, siis j\u00f5uab see kolmandal real ilusti ka vastava option-rea kirjeldusse.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n $lisand=&quot;&quot;; \n if($id==$valitudid){$lisand=&quot; selected=&#039;selected&#039;&quot;;} \n $tulemus.=&quot;&lt;option value=&#039;$id&#039; $lisand &gt;$sisu&lt;\/option&gt;&quot;; \n\n<\/pre><\/div>\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n function looRippMenyy($sqllause, $valikunimi, $valitudid=&quot;&quot;){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare($sqllause); \n $kask-&gt;bind_result($id, $sisu); \n $kask-&gt;execute(); \n $tulemus=&quot;&lt;select name=&#039;$valikunimi&#039;&gt;&quot;; \n while($kask-&gt;fetch()){ \n $lisand=&quot;&quot;; \n if($id==$valitudid){$lisand=&quot; selected=&#039;selected&#039;&quot;;} \n $tulemus.=&quot;&lt;option value=&#039;$id&#039; $lisand &gt;$sisu&lt;\/option&gt;&quot;; \n } \n $tulemus.=&quot;&lt;\/select&gt;&quot;; \n return $tulemus; \n } \n\n<\/pre><\/div>\n\n\n<p>Ning nende toimetuste tulemusena tekib siis valitud rida juba muudetaval kujul ekraanile. Muutused k\u00fcll veel kuhugile ei j\u00f5ua, aga eks see tuleb siis j\u00e4rgmise sammuna \u00fcles t\u00e4hendada.<\/p>\n\n\n\n<p>Kauba andmete muutmiseks lisatakse taas sobiv funktsioon. Kindlasti tuleb muutmise juurest kaasa saata muudetava kauba id. Selleks oli ennist vormi sees rida<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n &lt;input type=&quot;hidden&quot; name=&quot;muudetudid&quot; value=&quot;&lt;?=$kaup-&gt;id ?&gt;&quot; \/&gt;\n<\/pre><\/div>\n\n\n<p>kus see id kaasa pandi.&nbsp;&nbsp;Edasi koostatakse abifunktsioonide alla UPDATE-lause, kus id-numbriga m\u00e4\u00e4ratud real vanad andmed uutega \u00fcle kirjutatakse.&nbsp;<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n function muudaKaup($kauba_id, $nimetus, $kaubagrupi_id, $hind){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare(&quot;UPDATE kaubad SET nimetus=?, kaubagrupi_id=?, hind=?  WHERE id=?&quot;); \n $kask-&gt;bind_param(&quot;sidi&quot;, $nimetus, $kaubagrupi_id, $hind, $kauba_id);  $kask-&gt;execute(); \n }\n\n<\/pre><\/div>\n\n\n<p>Kaupade lehe juures tuleb algusesse juurde kontroll &#8211; et kui vajutati muutmisnupule, siis k\u00e4ivitatakse muutmisfunktsioon koos ette antud uute andmetega.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n if(isSet($_REQUEST&#x5B;&quot;muutmine&quot;])){ \n muudaKaup($_REQUEST&#x5B;&quot;muudetudid&quot;], $_REQUEST&#x5B;&quot;nimetus&quot;],  \n $_REQUEST&#x5B;&quot;kaubagrupi_id&quot;], $_REQUEST&#x5B;&quot;hind&quot;]);  } \n\n<\/pre><\/div>\n\n\n<p>Ning v\u00f5ibki uue hinna kirjutada ja muudki parandused vajadusel siise viia.<\/p>\n\n\n\n<p>Muutmisnupu vajutamise j\u00e4rgsel lehe avamisel ongi uuel kujul andmed siis n\u00e4htavad.<\/p>\n\n\n\n<p>J\u00e4reltegemise h\u00f5lbustamiseks siis halduseks vajalike failide koodid tervikuna. kaubahaldus.php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php \n require(&quot;abifunktsioonid.php&quot;); \n if(isSet($_REQUEST&#x5B;&quot;grupilisamine&quot;])){ \n lisaGrupp($_REQUEST&#x5B;&quot;uuegrupinimi&quot;]); \n header(&quot;Location: kaubahaldus.php&quot;); \n exit(); \n } \n if(isSet($_REQUEST&#x5B;&quot;kaubalisamine&quot;])){ \n lisaKaup($_REQUEST&#x5B;&quot;nimetus&quot;], $_REQUEST&#x5B;&quot;kaubagrupi_id&quot;], $_REQUEST&#x5B;&quot;hind&quot;]);  header(&quot;Location: kaubahaldus.php&quot;); \n exit(); \n } \n if(isSet($_REQUEST&#x5B;&quot;kustutusid&quot;])){ \n kustutaKaup($_REQUEST&#x5B;&quot;kustutusid&quot;]); \n } \n if(isSet($_REQUEST&#x5B;&quot;muutmine&quot;])){ \n muudaKaup($_REQUEST&#x5B;&quot;muudetudid&quot;], $_REQUEST&#x5B;&quot;nimetus&quot;], \n $_REQUEST&#x5B;&quot;kaubagrupi_id&quot;], $_REQUEST&#x5B;&quot;hind&quot;]);  } \n $kaubad=kysiKaupadeAndmed(); \n?&gt; \n&lt;!DOCTYPE html PUBLIC &quot;-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN&quot; \n&quot;http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd&quot;&gt; \n&lt;html xmlns=&quot;http:\/\/www.w3.org\/1999\/xhtml&quot;&gt;\n &lt;head&gt; \n &lt;title&gt;Kaupade leht&lt;\/title&gt; \n &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text\/html;charset=utf-8&quot; \/&gt;  &lt;\/head&gt; \n &lt;body&gt;  \n &lt;form action=&quot;kaubahaldus.php&quot;&gt; \n &lt;h2&gt;Kauba lisamine&lt;\/h2&gt; \n &lt;dl&gt; \n &lt;dt&gt;Nimetus:&lt;\/dt&gt; \n &lt;dd&gt;&lt;input type=&quot;text&quot; name=&quot;nimetus&quot; \/&gt;&lt;\/dd&gt; \n &lt;dt&gt;Kaubagrupp:&lt;\/dt&gt; \n &lt;dd&gt;&lt;?php \n echo looRippMenyy(&quot;SELECT id, grupinimi FROM kaubagrupid&quot;,   &quot;kaubagrupi_id&quot;); \n ?&gt; \n &lt;\/dd&gt; \n &lt;dt&gt;Hind:&lt;\/dt&gt; \n &lt;dd&gt;&lt;input type=&quot;text&quot; name=&quot;hind&quot; \/&gt;&lt;\/dd&gt; \n &lt;\/dl&gt; \n &lt;input type=&quot;submit&quot; name=&quot;kaubalisamine&quot; value=&quot;Lisa kaup&quot; \/&gt;  &lt;h2&gt;Grupi lisamine&lt;\/h2&gt; \n &lt;input type=&quot;text&quot; name=&quot;uuegrupinimi&quot; \/&gt; \n &lt;input type=&quot;submit&quot; name=&quot;grupilisamine&quot; value=&quot;Lisa grupp&quot; \/&gt;  &lt;\/form&gt; \n &lt;form action=&quot;kaubahaldus.php&quot;&gt; \n &lt;h2&gt;Kaupade loetelu&lt;\/h2&gt; \n &lt;table&gt; \n &lt;tr&gt; \n &lt;th&gt;Haldus&lt;\/th&gt; \n &lt;th&gt;Nimetus&lt;\/th&gt; \n &lt;th&gt;Kaubagrupp&lt;\/th&gt; \n &lt;th&gt;Hind&lt;\/th&gt; \n &lt;\/tr&gt; \n &lt;?php foreach($kaubad as $kaup): ?&gt; \n &lt;tr&gt; \n &lt;?php if(isSet($_REQUEST&#x5B;&quot;muutmisid&quot;]) &amp;&amp; \n intval($_REQUEST&#x5B;&quot;muutmisid&quot;])==$kaup-&gt;id): ?&gt;  &lt;td&gt; \n &lt;input type=&quot;submit&quot; name=&quot;muutmine&quot; value=&quot;Muuda&quot; \/&gt;  &lt;input type=&quot;submit&quot; name=&quot;katkestus&quot; value=&quot;Katkesta&quot; \/&gt;  &lt;input type=&quot;hidden&quot; name=&quot;muudetudid&quot; value=&quot;&lt;?=$kaup-&gt;id ?&gt;&quot; \/&gt;  &lt;\/td&gt; \n &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;nimetus&quot; value=&quot;&lt;?=$kaup-&gt;nimetus ?&gt;&quot; \/&gt;&lt;\/td&gt;  &lt;td&gt;&lt;?php \n echo looRippMenyy(&quot;SELECT id, grupinimi FROM kaubagrupid&quot;,   &quot;kaubagrupi_id&quot;, $kaup-&gt;kaubagrupi_id);  ?&gt;&lt;\/td&gt; \n &lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;hind&quot; value=&quot;&lt;?=$kaup-&gt;hind ?&gt;&quot; \/&gt;&lt;\/td&gt;  &lt;?php else: ?&gt;  \n &lt;td&gt;&lt;a href=&quot;kaubahaldus.php?kustutusid=&lt;?=$kaup-&gt;id ?&gt;&quot;  onclick=&quot;return confirm(&#039;Kas ikka soovid kustutada?&#039;)&quot;&gt;x&lt;\/a&gt;  &lt;a href=&quot;kaubahaldus.php?muutmisid=&lt;?=$kaup-&gt;id ?&gt;&quot;&gt;m&lt;\/a&gt;  &lt;\/td&gt; \n &lt;td&gt;&lt;?=$kaup-&gt;nimetus ?&gt;&lt;\/td&gt; \n &lt;td&gt;&lt;?=$kaup-&gt;grupinimi ?&gt;&lt;\/td&gt; \n &lt;td&gt;&lt;?=$kaup-&gt;hind ?&gt;&lt;\/td&gt; \n &lt;?php endif ?&gt; \n &lt;\/tr&gt; \n &lt;?php endforeach; ?&gt; \n &lt;\/table&gt; \n &lt;\/form&gt; \n &lt;\/body&gt; \n&lt;\/html&gt; \n\n<\/pre><\/div>\n\n\n<p>ning abifunktsioonid.php<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php \n $yhendus=new mysqli(&quot;localhost&quot;, &quot;jaagup&quot;, &quot;xxxxxx&quot;, &quot;jaagup&quot;);\n  \n function kysiKaupadeAndmed($sorttulp=&quot;nimetus&quot;, $otsisona=&quot;&quot;){ \n global $yhendus; \n $lubatudtulbad=array(&quot;nimetus&quot;, &quot;grupinimi&quot;, &quot;hind&quot;); \n if(!in_array($sorttulp, $lubatudtulbad)){ \n return &quot;lubamatu tulp&quot;; \n } \n $otsisona=addslashes(stripslashes($otsisona)); \n $kask=$yhendus-&gt;prepare(&quot;SELECT kaubad.id, nimetus, grupinimi, kaubagrupi_id, hind  FROM kaubad, kaubagrupid \n WHERE kaubad.kaubagrupi_id=kaubagrupid.id \n AND (nimetus LIKE &#039;%$otsisona%&#039; OR grupinimi LIKE &#039;%$otsisona%&#039;)  ORDER BY $sorttulp&quot;); \n \/\/echo $yhendus-&gt;error; \n $kask-&gt;bind_result($id, $nimetus, $grupinimi, $kaubagrupi_id, $hind);  $kask-&gt;execute(); \n $hoidla=array(); \n while($kask-&gt;fetch()){ \n $kaup=new stdClass(); \n $kaup-&gt;id=$id; \n $kaup-&gt;nimetus=htmlspecialchars($nimetus); \n $kaup-&gt;grupinimi=htmlspecialchars($grupinimi); \n $kaup-&gt;kaubagrupi_id=$kaubagrupi_id; \n $kaup-&gt;hind=$hind; \n array_push($hoidla, $kaup); \n } \n return $hoidla; \n } \n  \n \/** \n * Luuakse HTML select-valik, kus v6etakse v22rtuseks sqllausest tulnud  * esimene tulp ning n2idatakse teise tulba oma. \n *\/ \n function looRippMenyy($sqllause, $valikunimi, $valitudid=&quot;&quot;){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare($sqllause); \n $kask-&gt;bind_result($id, $sisu); \n $kask-&gt;execute(); \n $tulemus=&quot;&lt;select name=&#039;$valikunimi&#039;&gt;&quot;; \n while($kask-&gt;fetch()){ \n $lisand=&quot;&quot;; \n if($id==$valitudid){$lisand=&quot; selected=&#039;selected&#039;&quot;;} \n $tulemus.=&quot;&lt;option value=&#039;$id&#039; $lisand &gt;$sisu&lt;\/option&gt;&quot;; \n } \n $tulemus.=&quot;&lt;\/select&gt;&quot;; \n return $tulemus; \n } \n\/* \n function looRippMenyy($sqllause, $valikunimi){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare($sqllause); \n $kask-&gt;bind_result($id, $sisu); \n $kask-&gt;execute(); \n $tulemus=&quot;&lt;select name=&#039;$valikunimi&#039;&gt;&quot;; \n while($kask-&gt;fetch()){ \n $tulemus.=&quot;&lt;option value=&#039;$id&#039;&gt;$sisu&lt;\/option&gt;&quot;; \n } \n $tulemus.=&quot;&lt;\/select&gt;&quot;; \n return $tulemus; \n } \n*\/ \n  \n function lisaGrupp($grupinimi){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare(&quot;INSERT INTO kaubagrupid (grupinimi)  VALUES (?)&quot;); \n $kask-&gt;bind_param(&quot;s&quot;, $grupinimi); \n $kask-&gt;execute(); \n }\n  \n function lisaKaup($nimetus, $kaubagrupi_id, $hind){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare(&quot;INSERT INTO  \n kaubad (nimetus, kaubagrupi_id, hind) \n VALUES (?, ?, ?)&quot;); \n $kask-&gt;bind_param(&quot;sid&quot;, $nimetus, $kaubagrupi_id, $hind); \n $kask-&gt;execute(); \n } \n  \n function kustutaKaup($kauba_id){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare(&quot;DELETE FROM kaubad WHERE id=?&quot;); \n $kask-&gt;bind_param(&quot;i&quot;, $kauba_id); \n $kask-&gt;execute(); \n } \n  \n function muudaKaup($kauba_id, $nimetus, $kaubagrupi_id, $hind){ \n global $yhendus; \n $kask=$yhendus-&gt;prepare(&quot;UPDATE kaubad SET nimetus=?, kaubagrupi_id=?, hind=?  WHERE id=?&quot;); \n $kask-&gt;bind_param(&quot;sidi&quot;, $nimetus, $kaubagrupi_id, $hind, $kauba_id);  $kask-&gt;execute(); \n } \n \/\/---------------  \n if( array_pop(explode(&quot;\/&quot;, $_SERVER&#x5B;&quot;PHP_SELF&quot;]))==&quot;abifunktsioonid.php&quot;): ?&gt; \n&lt;pre&gt; \n&lt;?php \n print_r(kysiKaupadeAndmed(&quot;hind&quot;, &quot;fass\\\\aad&quot;)); \n?&gt; \n&lt;\/pre&gt; \n&lt;?php endif ?&gt; \n\n<\/pre><\/div>\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"336\" height=\"496\" src=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/KAUBA.PHP5_.png\" alt=\"\" class=\"wp-image-316\" srcset=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/KAUBA.PHP5_.png 336w, https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/KAUBA.PHP5_-203x300.png 203w\" sizes=\"auto, (max-width: 336px) 100vw, 336px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u00dclesanne:<\/h2>\n\n\n\n<p>Antud konspekti j\u00e4rgi sul on tekkinud 3 faili:<\/p>\n\n\n\n<p>abifunktsioonid.php<br>kaubaotsing.php<br>kaubahaldus.php<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Tee \u00fcldine koond veebileht &#8211; index.php, mis v\u00f5imaldab K\u00d5IK CRUD operatsioonid kaupadega, kaupade sorteerimine ning otsing.<br>koodil\u00f5igud on kommenteeritud.<\/li>\n<\/ol>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>T\u00fchjad kaubad ja kaubagrupid ei tohi lisada.<\/li>\n\n\n\n<li>Kaubagrupide lisamises kontrollitakse, et nad ei dubleeri.<\/li>\n\n\n\n<li>Lisada header ja kasutajas\u00f5bralik css (tabel peab olema responsive)<\/li>\n<\/ol>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mitme seotud andmetabeli pealt kokku ehitatud veebihaldusliidese keerukaimaks kohaks on valitava tunnuse muutmine rippmen\u00fc\u00fc kaudu &#8211; et muutmisel oleks olemasolev valik ette keritud ning v\u00f5imalik muutus ka \u00f5igesti kirja l\u00e4heks.Muus osas on muutmine suhteliselt sarnane konspekti algusosas oleva teadetetabeli andmete muutmisega. Vaid SQL-p\u00e4ringud on HTMLi koodist v\u00e4lja viidud ning andmeid n\u00e4idatakse abifunktsioonid.php-failist tulnud muutujate kaudu.Kaupade &hellip; <a href=\"https:\/\/tarkvara.thkit.ee\/veeb\/andmete-muutmine\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Andmete muutmine<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-303","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/comments?post=303"}],"version-history":[{"count":15,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/303\/revisions"}],"predecessor-version":[{"id":1098,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/303\/revisions\/1098"}],"wp:attachment":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/media?parent=303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}