Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.45 KB | None | 0 0
  1. <?php
  2. /* Funktioner (inklusive parametrar) som behövs för att hantera söksidan */
  3.  
  4. /**
  5. * Funktionen printSearchForm() skriver ut formuläret (frmSearchArtistSong) i vilket det går att skriva in en artist och/eller låt att söka på.
  6. * Funktionen tar inte emot någon data och returnerar heller någon data.
  7. *
  8. */
  9. function printSearchForm() {
  10. echo(' <form action="searchArtistSong.php" method="post" name="frmSearchArtistSong">
  11. <input type="search" name="txtSearch" id="txtSearch" required="required">
  12. <br/>
  13. <input type="submit" value="Search" name="btnSearch" />
  14. <input type="reset" value="Reset" name="btnReset" />
  15. </form>');
  16. }
  17.  
  18. /**
  19. * Funktionen listArtists söker ut samtliga artister som matchar sökkriteriet och skriver ut dessa som de visas i laboration 2.
  20. * Matchas inga inga poster mot sökkriteriet skriver funktionen ut "Inga artister matchar din sökning!".
  21. * Funktionen returnerar ingen data.
  22. *
  23. * @param resurce $inDBConnection Databaskoppling
  24. * @param string $inSearchString Söksträngen
  25. */
  26.  
  27. function listArtists($inDBConnection, $inSearchString)
  28. {
  29. $query = $inDBConnection->query("SELECT * FROM tblartist WHERE name LIKE '%$inSearchString%'");
  30.  
  31.  
  32. if($query->rowCount()> 0)
  33. {
  34. while ($artist = $query->fetch(PDO::FETCH_ASSOC))
  35. {
  36. echo('<div>');
  37. echo('<form action="searchArtistSong.php" method="post" name="frmUpdateArtist" id="frmUpdateArtist">');
  38. echo('Name: ' . $artist['name']);
  39. echo('</form>');
  40. echo('</div>');
  41. }
  42. }
  43. else {
  44. echo'Inga artister matchar din sökning!';
  45. }
  46.  
  47.  
  48. }
  49.  
  50. /**
  51. * Funktionen listSongs söker ut samtliga sånger som matchar sökkriteriet och skriver ut dessa som de visas i laboration 2.
  52. * För varje matching anropas också funktionerna listComments() och printCommentForm().
  53. * Matchas inga inga poster mot sökkriteriet skriver funktionen ut "Inga sånger matchar din sökning!".
  54. * Funktionen returnerar ingen data.
  55. *
  56. * @param resurce $inDBConnection Databaskoppling
  57. * @param string $inSearchString Söksträngen
  58. */
  59. function listSongs($inDBConnection, $inSearchString) {
  60. /* if(empty($inSearchString)){
  61. throw new Exception("Fyll i fältet");
  62. }
  63. $safe_inSearchString = strip_tags($inSearchString);
  64. $safe_inSearchString = mysql_real_escape_string($inSearchString);*/
  65. $stmt = $inDBConnection->query("SELECT * FROM tblsong WHERE title LIKE '%$inSearchString%'");
  66. //$songs = $stmt->fetchAll();
  67.  
  68. if($stmt->rowCount()> 0)
  69. {
  70. while ($song = $stmt->fetch(PDO::FETCH_ASSOC))
  71. {
  72. echo('<div>');
  73. echo('<form action="searchArtistSong.php" method="post" name="frmUpdateSong" id="frmUpdateSong">');
  74. echo('<legend>Song: <b>' . $song['title'] . '</b></legend>');
  75. echo('<fieldset>');
  76. echo('<legend>Comment on and like: <b>' . $song['title'] . '</b></legend>');
  77. listComments($inDBConnection, $song['id']);
  78. printCommentAndLikeForms($song['id'], $song['title'], $song['count'], $inSearchString);
  79. echo('</form>');
  80. echo('</div>');
  81. echo('</fieldset');
  82. }
  83. }
  84. else {
  85. echo'Inga sånger matchar din sökning!';
  86. }
  87. }
  88. /*function listSongs($inDBConnection, $inSearchString)
  89. {
  90. if(empty($inSearchString))
  91. throw new Exception("Fyll i fältet");
  92.  
  93. $safe_inSearchString = strip_tags($inSearchString);
  94. $safe_inSearchString = mysql_real_escape_string($inSearchString);
  95.  
  96. $stmt = $inDBConnection->query("SELECT * FROM tblsong WHERE title LIKE '%$safe_inSearchString%'");
  97. $songs = $stmt->fetchAll();
  98.  
  99. if($stmt->rowCount() > 0)
  100. {
  101. foreach($songs as $song)
  102. {
  103. echo('<fieldset>');
  104. echo('<legend>Comment on and like <b>' . $song['title'] . '</b></legend>');
  105.  
  106. listComments($inDBConnection, $song['id']);
  107.  
  108. printCommentAndLikeForms($song['id'], $song['title'], $song['count'], $inSearchString);
  109.  
  110. echo('</fieldset>');
  111. }
  112. }else{
  113. echo('Inga sånger matchade din sökning.');
  114. }
  115. }
  116. */
  117.  
  118. /*function listSongs($inDBConnection, $inSearchString) {
  119. $stmt = $inDBConnection->query("SELECT * FROM tblsong, tblartist WHERE title LIKE '%$inSearchString%' and tblsong.artistid= tblartist.id ");
  120. $songs = $stmt->fetchAll();
  121.  
  122. foreach($songs as $song)
  123. {
  124. echo('<div>');
  125. echo('<form action="searchArtistSong.php" method="post" name="frmUpdateSong" id="frmUpdateSong">');
  126. echo('<p><b>Changedate: ' . $song['changedate'] . '</b><i> Denna låt har '.$song['name'].' gjort.</i><br/></p>');
  127. echo('Denna låt heter: ' . $song['title']);
  128. echo('</form>');
  129. echo('</div>');
  130. }
  131. }*/
  132.  
  133.  
  134.  
  135. /**
  136. * Funktionen listComments söker ut samtliga kommentarer som matchar inkommande $inSongId och skriver ut dessa som de visas i laboration 2.
  137. * Funktionen returnerar ingen data.
  138. *
  139. * @param resurce $inDBConnection Databaskoppling
  140. * @param string $inSongId Primärnyckeln för den sång som det skall listas kommentarer för.
  141. */
  142.  
  143.  
  144. function listComments($inDBConnection, $inSongId){
  145. try{
  146. $stmt = $inDBConnection->prepare('SELECT * FROM tblcomment WHERE songid=?;');
  147. $stmt->bindParam(1, $inSongId);
  148. $stmt->execute();
  149. $comments = $stmt->fetchAll();
  150.  
  151.  
  152. foreach($comments as $comment)
  153. {
  154. echo('<div>');
  155. echo(' <b> '. $comment['insertdate'] .' </b><i>' . $comment['text'] . ' <i/>');
  156. echo('</form>');
  157. echo('</div>');
  158. }
  159. }catch(Exception $e){
  160. echo('Error: ' .$e->getMessage());
  161. }
  162.  
  163.  
  164. }
  165.  
  166.  
  167. /**
  168. * Funktionen printCommentAndLikeForms() skriver ut formuläret (frmcomment) i vilket det går att skriva in en kommentar för en låt och
  169. * formuläret (frmlike) för att gilla en låt.
  170. * Funktionen returnerar ingen data.
  171. *
  172. * @param string $inSongId Primärnyckeln för den låt som kommentarsfältet skall knytas mot
  173. * @param string $inSongTitle Titeln på aktull låt
  174. * @param string $inCount Antalet "gilla" (count)
  175. * @param string $inSearchString Söksträngen för senaste sökningen
  176. */
  177. function printCommentAndLikeForms($inSongId, $inSongTitle, $inCount, $inSearchString) {
  178. try{
  179.  
  180. echo('<form action="searchArtistSong.php" method="post" name="frmLike">
  181. <p>Likes:<b> '. $inCount.'</b>
  182. <input type="submit" name="btnLike" value="Like"></p>
  183. <input type="hidden" name="hidSearch" id="hidSearch" value="'. $inSearchString .'" />
  184. <input type="hidden" name="hidId" id="hidId" value= "'. $inSongId .'" />
  185.  
  186. </form>');
  187.  
  188.  
  189. echo('<form action="searchArtistSong.php" method="post" name="frmComment">
  190. <input type="hidden" name="hidId" id="hidId" value=' . $inSongId . '>
  191. <textarea cols="40" rows="10" name="txtComment" id="txtComment"title="Comment">Här skriver man vad man tycker om låten...</textarea><br/>
  192. <input type="hidden" name="hidSearch" id="hidSearch" value="' . $inSearchString . '"/>
  193. <input type="hidden" name="hidTitleId" id="hidTitleId" value="' . $inSongTitle . '"/>
  194. <input type="submit" name="btnSave" value="Save"/>
  195. <input type="reset" name="btnReset" value="Reset"/>
  196. </form>');
  197. }catch(Exception $e){
  198. echo('Error: ' .$e->getMessage());
  199. }
  200. }
  201.  
  202.  
  203. /**
  204. * Funktionen insertComment() sparar en ny kommentar till databasen.
  205. * Funktionen returnerar ingen data.
  206. *
  207. * @param resurce $inDBConnection Databaskoppling
  208. * @param string $inSongId Primärnyckeln för den låt som kommentarsfältet och gilla skall knytas mot
  209. * @param string $inComment Kommentaren
  210. */
  211. function insertComment($inDBConnection, $inSongId, $inComment) {
  212. try{
  213. $inComment = strip_tags($inComment);
  214. $stmt = $inDBConnection->prepare('INSERT INTO tblcomment(songid, text) VALUES(?,?);');
  215. $stmt->bindParam(1, $inSongId);
  216. $stmt->bindParam(2, $inComment);
  217. $stmt->execute();
  218. }
  219. catch(Exception $e){
  220. echo('Error:' . $e->getMessage());
  221. }
  222. }
  223.  
  224. /**
  225. * Funktionen likeSong() ökar värdet för "gilla" tblsong.count) med ett
  226. * Funktionen returnerar ingen data.
  227. *
  228. * @param resurce $inDBConnection Databaskoppling
  229. * @param string $inSongId Primärnyckeln för den låt som kommentarsfältet skall knytas mot
  230. */
  231. function likeSong($inDBConnection, $inSongId) {
  232. try{
  233.  
  234. $stmt = $inDBConnection->prepare("UPDATE tblSong set count = count+1 where id=? ");
  235. $stmt->bindParam(1, $inSongId);
  236. $stmt->execute();
  237. }
  238. catch (Exception $e)
  239. {
  240. echo('Error:' . $e->getMessage());
  241. }
  242.  
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement