{"id":190,"date":"2023-03-10T13:20:46","date_gmt":"2023-03-10T13:20:46","guid":{"rendered":"https:\/\/tarkvara.thkit.ee\/veeb\/?page_id=190"},"modified":"2023-03-10T13:26:19","modified_gmt":"2023-03-10T13:26:19","slug":"haldus-laulude-kaupa","status":"publish","type":"page","link":"https:\/\/tarkvara.thkit.ee\/veeb\/haldus-laulude-kaupa\/","title":{"rendered":"Haldus laulude kaupa"},"content":{"rendered":"\n<p>T\u00e4helepanekud \u00f5ppijate juures kipuvad n\u00e4itama, et kui \u00fche toiminguga lehest eraldi aru saadud ning m\u00f5istetakse selle p\u00f5hjal ka sarnaseid lehti teisel teemal koostada &#8211; sellest veel ei pruugi piisata, et mitme toimetuse \u00fchele lehele kokkupanek sama h\u00f5lpsasti k\u00e4iks. Seet\u00f5ttu ka siin n\u00e4ide, kuidas punktide haldus ning kommentaaride lisamine v\u00f5imalik samale lehele kokku t\u00f5sta. Lihtsamal kujul k\u00e4iks see n\u00f5nda, et laulu taga on kaks tulpa &#8211; \u00fcks punktide m\u00e4\u00e4ramiseks ning teine kommentaari lisamiseks. Ning \u00fcleval oleks vastavad andmetabeli muutmise plokid j\u00e4rjestikku, if-lausega saab kontrollida, et kumma toiminguga parajasti tegemist.&nbsp;<\/p>\n\n\n\n<p>Siin aga on keerukamalt ette v\u00f5etud ning tehtud n\u00f5nda, et laulude loetelu on eraldi ning sealt valitud laulu andmed n\u00e4idatakse lehe \u00fclaosas. Kuna korraga aktiivne vaid \u00fcks laul, siis jagub lehel rohkem ruumi temaga seotud ettev\u00f5tmiste tarbeks.&nbsp;&nbsp;Laulude loetellu k\u00fcsitakse kasutaja lehele v\u00e4lja avalikud laulud. Iga laulu pealkiri muutub v\u00e4ljatr\u00fckil viiteks, mis n\u00e4itab samale veebilehele, kuid kuhu antakse kaasa valitud laulu id (href=&#8217;? id=$id&#8217;).&nbsp;<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n &lt;table&gt; \n &lt;?php \n $kask=$yhendus-&gt;prepare( \n &quot;SELECT id, pealkiri, punktid FROM laulud WHERE avalik=1&quot;);  $kask-&gt;bind_result($id, $pealkiri, $punktid); \n $kask-&gt;execute(); \n while($kask-&gt;fetch()){ \n $pealkiri=htmlspecialchars($pealkiri); \n echo &quot;&lt;tr&gt; \n &lt;td&gt;&lt;a href=&#039;?id=$id&#039;&gt;$pealkiri&lt;\/a&gt;&lt;\/td&gt; \n &lt;td&gt;$punktid&lt;\/td&gt; \n&lt;\/tr&gt;&quot;; \n } \n ?&gt; \n&lt;\/table&gt; \n\n<\/pre><\/div>\n\n\n<p>Kui laulu id valiti, sellisel juhul k\u00fcsitakse lehel p\u00e4rast body algust v\u00e4lja p\u00e4ring vaid selle laulu andmete k\u00e4tte saamiseks.&nbsp;<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n if(isSet($_REQUEST&#x5B;&quot;id&quot;])){ \n $kask=$yhendus-&gt;prepare(&quot;SELECT id, pealkiri, kommentaarid, punktid, lisamisaeg FROM laulud WHERE id=?&quot;); \n\n<\/pre><\/div>\n\n\n<p>Sealt edasi v\u00f5ib siis ka laulu kommentaari sisestada v\u00f5i punkti lisada.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Andmete tegelik baasi kirjutamine toimub lehe uuel avanemisel kui vastavad parameetrid kaasas. See osa n\u00e4ha kohe uue v\u00e4ljatr\u00fcki alguses.<\/p>\n\n\n\n<p>laululeht.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;juku&quot;, &quot;kala&quot;, &quot;jukubaas1&quot;);  if(isSet($_REQUEST&#x5B;&quot;healaulu_id&quot;])){ \n $kask=$yhendus-&gt;prepare(&quot;UPDATE laulud SET punktid=punktid+1 WHERE id=?&quot;);  $kask-&gt;bind_param(&quot;i&quot;, $_REQUEST&#x5B;&quot;healaulu_id&quot;]); \n $kask-&gt;execute(); \n } \n if(isSet($_REQUEST&#x5B;&quot;uue_kommentaari_id&quot;])){ \n $kask=$yhendus-&gt;prepare( \n &quot;UPDATE laulud SET kommentaarid=CONCAT(kommentaarid, ?) WHERE id=?&quot;);  $kommentaarilisa=&quot;\\n&quot;.$_REQUEST&#x5B;&quot;uus_kommentaar&quot;].&quot;\\n&quot;; \n $kask-&gt;bind_param(&quot;si&quot;,  \n $kommentaarilisa, $_REQUEST&#x5B;&quot;uue_kommentaari_id&quot;]);  $kask-&gt;execute(); \n } \n?&gt; \n&lt;!doctype html&gt; \n&lt;html&gt; \n &lt;head&gt; \n &lt;title&gt;Laulud&lt;\/title&gt; \n &lt;\/head&gt; \n &lt;body&gt; \n &lt;?php \n if(isSet($_REQUEST&#x5B;&quot;id&quot;])){ \n $kask=$yhendus-&gt;prepare( \n &quot;SELECT id, pealkiri, kommentaarid, punktid, lisamisaeg   FROM laulud WHERE id=?&quot;); \n $kask-&gt;bind_param(&quot;i&quot;, $_REQUEST&#x5B;&quot;id&quot;]); \n $kask-&gt;bind_result( \n $id, $pealkiri, $kommentaarid, $punktid, $lisamisaeg);  $kask-&gt;execute(); \n if($kask-&gt;fetch()){ \n $pealkiri=htmlspecialchars($pealkiri); \n$kommentaarid=nl2br(htmlspecialchars($kommentaarid)); \n echo &quot; \n &lt;h2&gt;$pealkiri&lt;\/h2&gt; \n &lt;dl&gt; \n &lt;dt&gt;Punkte:&lt;\/dt&gt; \n&lt;dd&gt;$punktid&lt;\/dd&gt; \n &lt;dt&gt;Lisatud:&lt;\/dt&gt; \n&lt;dd&gt;$lisamisaeg&lt;\/dd&gt; \n &lt;dt&gt;Kommentaarid:&lt;\/dt&gt; \n&lt;dd&gt;$kommentaarid&lt;\/dd&gt; \n &lt;\/dl&gt; \n &lt;a href=&#039;?healaulu_id=$id&#039;&gt;Lisa punkt&lt;\/a&gt;&lt;br \/&gt; \n &lt;form action=&#039;?&#039;&gt; \n &lt;input type=&#039;hidden&#039;  \n name=&#039;uue_kommentaari_id&#039; value=&#039;$id&#039; \/&gt;  &lt;input type=&#039;text&#039; name=&#039;uus_kommentaar&#039; \/&gt; \n &lt;input type=&#039;submit&#039; value=&#039;Lisa kommentaar&#039; \/&gt; \n &lt;\/form&gt;  \n&quot;; \n$kask-&gt;close(); \n } \n } \n?&gt; \n &lt;h1&gt;Laulud&lt;\/h1&gt; \n &lt;table&gt;\n &lt;?php \n $kask=$yhendus-&gt;prepare( \n &quot;SELECT id, pealkiri, punktid FROM laulud WHERE avalik=1&quot;);  $kask-&gt;bind_result($id, $pealkiri, $punktid); \n $kask-&gt;execute(); \n while($kask-&gt;fetch()){ \n $pealkiri=htmlspecialchars($pealkiri); \n echo &quot;&lt;tr&gt; \n &lt;td&gt;&lt;a href=&#039;?id=$id&#039;&gt;$pealkiri&lt;\/a&gt;&lt;\/td&gt; \n &lt;td&gt;$punktid&lt;\/td&gt; \n&lt;\/tr&gt;&quot;; \n } \n ?&gt; \n&lt;\/table&gt; \n &lt;\/body&gt; \n&lt;\/html&gt; \n&lt;?php \n $yhendus-&gt;close(); \n?&gt; \n\n<\/pre><\/div>\n\n\n<p>Algul avaneb lehel laulude loetelu nagu tavaliselt, iga\u00fchele taha kirjutatud selle laulu punktide arv.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"380\" height=\"234\" src=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul10.png\" alt=\"\" class=\"wp-image-195\" srcset=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul10.png 380w, https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul10-300x185.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><\/figure>\n\n\n\n<p>Laulule vajutades saadetakse uuele lehep\u00e4ringule kaasa selle laulu id (n\u00e4ha aadressiribal).&nbsp;<\/p>\n\n\n\n<p>Saabunud id j\u00e4rgi k\u00fcsitakse v\u00e4lja vastava laulu muud andmed ning n\u00e4idatakse kasutajale. Samuti pannakse sinna siis viide punkti lisamiseks ning koht kommentaari sisestamiseks.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"405\" height=\"300\" src=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul11.png\" alt=\"\" class=\"wp-image-197\" srcset=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul11.png 405w, https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul11-300x222.png 300w\" sizes=\"auto, (max-width: 405px) 100vw, 405px\" \/><\/figure>\n\n\n\n<p>Punktiviitele vajutamisel lisatakse punkt andmetabelisse ning seda n\u00e4eb lehe j\u00e4rgmisel avamisel. Mutionu pidu on kaheksale punktile \u00fche juurde saanud.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"399\" height=\"267\" src=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul12.png\" alt=\"\" class=\"wp-image-199\" srcset=\"https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul12.png 399w, https:\/\/tarkvara.thkit.ee\/veeb\/wp-content\/uploads\/2023\/03\/laul12-300x201.png 300w\" sizes=\"auto, (max-width: 399px) 100vw, 399px\" \/><\/figure>\n\n\n\n<p>Ja kommentaarid j\u00f5uavad ka ilusti laulule k\u00fclge. N\u00f5nda v\u00f5ib m\u00f5lema oskuse koos toimimist \u00fchel lehel imetleda ning omale j\u00e4rgmiste rakenduste loomise juures alusn\u00e4idisena v\u00f5tta.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>T\u00e4helepanekud \u00f5ppijate juures kipuvad n\u00e4itama, et kui \u00fche toiminguga lehest eraldi aru saadud ning m\u00f5istetakse selle p\u00f5hjal ka sarnaseid lehti teisel teemal koostada &#8211; sellest veel ei pruugi piisata, et mitme toimetuse \u00fchele lehele kokkupanek sama h\u00f5lpsasti k\u00e4iks. Seet\u00f5ttu ka siin n\u00e4ide, kuidas punktide haldus ning kommentaaride lisamine v\u00f5imalik samale lehele kokku t\u00f5sta. Lihtsamal kujul &hellip; <a href=\"https:\/\/tarkvara.thkit.ee\/veeb\/haldus-laulude-kaupa\/\" class=\"more-link\">Loe edasi <span class=\"screen-reader-text\">Haldus laulude kaupa<\/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-190","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/190","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=190"}],"version-history":[{"count":7,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/190\/revisions"}],"predecessor-version":[{"id":202,"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/pages\/190\/revisions\/202"}],"wp:attachment":[{"href":"https:\/\/tarkvara.thkit.ee\/veeb\/wp-json\/wp\/v2\/media?parent=190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}