Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /* Funktioner (inklusive parametrar) som behövs för att hantera söksidan */
- /**
- * 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å.
- * Funktionen tar inte emot någon data och returnerar heller någon data.
- *
- */
- function printSearchForm() {
- echo(' <form action="searchArtistSong.php" method="post" name="frmSearchArtistSong">
- <input type="search" name="txtSearch" id="txtSearch" required="required">
- <br/>
- <input type="submit" value="Search" name="btnSearch" />
- <input type="reset" value="Reset" name="btnReset" />
- </form>');
- }
- /**
- * Funktionen listArtists söker ut samtliga artister som matchar sökkriteriet och skriver ut dessa som de visas i laboration 2.
- * Matchas inga inga poster mot sökkriteriet skriver funktionen ut "Inga artister matchar din sökning!".
- * Funktionen returnerar ingen data.
- *
- * @param resurce $inDBConnection Databaskoppling
- * @param string $inSearchString Söksträngen
- */
- function listArtists($inDBConnection, $inSearchString)
- {
- $query = $inDBConnection->query("SELECT * FROM tblartist WHERE name LIKE '%$inSearchString%'");
- if($query->rowCount()> 0)
- {
- while ($artist = $query->fetch(PDO::FETCH_ASSOC))
- {
- echo('<div>');
- echo('<form action="searchArtistSong.php" method="post" name="frmUpdateArtist" id="frmUpdateArtist">');
- echo('Name: ' . $artist['name']);
- echo('</form>');
- echo('</div>');
- }
- }
- else {
- echo'Inga artister matchar din sökning!';
- }
- }
- /**
- * Funktionen listSongs söker ut samtliga sånger som matchar sökkriteriet och skriver ut dessa som de visas i laboration 2.
- * För varje matching anropas också funktionerna listComments() och printCommentForm().
- * Matchas inga inga poster mot sökkriteriet skriver funktionen ut "Inga sånger matchar din sökning!".
- * Funktionen returnerar ingen data.
- *
- * @param resurce $inDBConnection Databaskoppling
- * @param string $inSearchString Söksträngen
- */
- function listSongs($inDBConnection, $inSearchString) {
- /* if(empty($inSearchString)){
- throw new Exception("Fyll i fältet");
- }
- $safe_inSearchString = strip_tags($inSearchString);
- $safe_inSearchString = mysql_real_escape_string($inSearchString);*/
- $stmt = $inDBConnection->query("SELECT * FROM tblsong WHERE title LIKE '%$inSearchString%'");
- //$songs = $stmt->fetchAll();
- if($stmt->rowCount()> 0)
- {
- while ($song = $stmt->fetch(PDO::FETCH_ASSOC))
- {
- echo('<div>');
- echo('<form action="searchArtistSong.php" method="post" name="frmUpdateSong" id="frmUpdateSong">');
- echo('<legend>Song: <b>' . $song['title'] . '</b></legend>');
- echo('<fieldset>');
- echo('<legend>Comment on and like: <b>' . $song['title'] . '</b></legend>');
- listComments($inDBConnection, $song['id']);
- printCommentAndLikeForms($song['id'], $song['title'], $song['count'], $inSearchString);
- echo('</form>');
- echo('</div>');
- echo('</fieldset');
- }
- }
- else {
- echo'Inga sånger matchar din sökning!';
- }
- }
- /*function listSongs($inDBConnection, $inSearchString)
- {
- if(empty($inSearchString))
- throw new Exception("Fyll i fältet");
- $safe_inSearchString = strip_tags($inSearchString);
- $safe_inSearchString = mysql_real_escape_string($inSearchString);
- $stmt = $inDBConnection->query("SELECT * FROM tblsong WHERE title LIKE '%$safe_inSearchString%'");
- $songs = $stmt->fetchAll();
- if($stmt->rowCount() > 0)
- {
- foreach($songs as $song)
- {
- echo('<fieldset>');
- echo('<legend>Comment on and like <b>' . $song['title'] . '</b></legend>');
- listComments($inDBConnection, $song['id']);
- printCommentAndLikeForms($song['id'], $song['title'], $song['count'], $inSearchString);
- echo('</fieldset>');
- }
- }else{
- echo('Inga sånger matchade din sökning.');
- }
- }
- */
- /*function listSongs($inDBConnection, $inSearchString) {
- $stmt = $inDBConnection->query("SELECT * FROM tblsong, tblartist WHERE title LIKE '%$inSearchString%' and tblsong.artistid= tblartist.id ");
- $songs = $stmt->fetchAll();
- foreach($songs as $song)
- {
- echo('<div>');
- echo('<form action="searchArtistSong.php" method="post" name="frmUpdateSong" id="frmUpdateSong">');
- echo('<p><b>Changedate: ' . $song['changedate'] . '</b><i> Denna låt har '.$song['name'].' gjort.</i><br/></p>');
- echo('Denna låt heter: ' . $song['title']);
- echo('</form>');
- echo('</div>');
- }
- }*/
- /**
- * Funktionen listComments söker ut samtliga kommentarer som matchar inkommande $inSongId och skriver ut dessa som de visas i laboration 2.
- * Funktionen returnerar ingen data.
- *
- * @param resurce $inDBConnection Databaskoppling
- * @param string $inSongId Primärnyckeln för den sång som det skall listas kommentarer för.
- */
- function listComments($inDBConnection, $inSongId){
- try{
- $stmt = $inDBConnection->prepare('SELECT * FROM tblcomment WHERE songid=?;');
- $stmt->bindParam(1, $inSongId);
- $stmt->execute();
- $comments = $stmt->fetchAll();
- foreach($comments as $comment)
- {
- echo('<div>');
- echo(' <b> '. $comment['insertdate'] .' </b><i>' . $comment['text'] . ' <i/>');
- echo('</form>');
- echo('</div>');
- }
- }catch(Exception $e){
- echo('Error: ' .$e->getMessage());
- }
- }
- /**
- * Funktionen printCommentAndLikeForms() skriver ut formuläret (frmcomment) i vilket det går att skriva in en kommentar för en låt och
- * formuläret (frmlike) för att gilla en låt.
- * Funktionen returnerar ingen data.
- *
- * @param string $inSongId Primärnyckeln för den låt som kommentarsfältet skall knytas mot
- * @param string $inSongTitle Titeln på aktull låt
- * @param string $inCount Antalet "gilla" (count)
- * @param string $inSearchString Söksträngen för senaste sökningen
- */
- function printCommentAndLikeForms($inSongId, $inSongTitle, $inCount, $inSearchString) {
- try{
- echo('<form action="searchArtistSong.php" method="post" name="frmLike">
- <p>Likes:<b> '. $inCount.'</b>
- <input type="submit" name="btnLike" value="Like"></p>
- <input type="hidden" name="hidSearch" id="hidSearch" value="'. $inSearchString .'" />
- <input type="hidden" name="hidId" id="hidId" value= "'. $inSongId .'" />
- </form>');
- echo('<form action="searchArtistSong.php" method="post" name="frmComment">
- <input type="hidden" name="hidId" id="hidId" value=' . $inSongId . '>
- <textarea cols="40" rows="10" name="txtComment" id="txtComment"title="Comment">Här skriver man vad man tycker om låten...</textarea><br/>
- <input type="hidden" name="hidSearch" id="hidSearch" value="' . $inSearchString . '"/>
- <input type="hidden" name="hidTitleId" id="hidTitleId" value="' . $inSongTitle . '"/>
- <input type="submit" name="btnSave" value="Save"/>
- <input type="reset" name="btnReset" value="Reset"/>
- </form>');
- }catch(Exception $e){
- echo('Error: ' .$e->getMessage());
- }
- }
- /**
- * Funktionen insertComment() sparar en ny kommentar till databasen.
- * Funktionen returnerar ingen data.
- *
- * @param resurce $inDBConnection Databaskoppling
- * @param string $inSongId Primärnyckeln för den låt som kommentarsfältet och gilla skall knytas mot
- * @param string $inComment Kommentaren
- */
- function insertComment($inDBConnection, $inSongId, $inComment) {
- try{
- $inComment = strip_tags($inComment);
- $stmt = $inDBConnection->prepare('INSERT INTO tblcomment(songid, text) VALUES(?,?);');
- $stmt->bindParam(1, $inSongId);
- $stmt->bindParam(2, $inComment);
- $stmt->execute();
- }
- catch(Exception $e){
- echo('Error:' . $e->getMessage());
- }
- }
- /**
- * Funktionen likeSong() ökar värdet för "gilla" tblsong.count) med ett
- * Funktionen returnerar ingen data.
- *
- * @param resurce $inDBConnection Databaskoppling
- * @param string $inSongId Primärnyckeln för den låt som kommentarsfältet skall knytas mot
- */
- function likeSong($inDBConnection, $inSongId) {
- try{
- $stmt = $inDBConnection->prepare("UPDATE tblSong set count = count+1 where id=? ");
- $stmt->bindParam(1, $inSongId);
- $stmt->execute();
- }
- catch (Exception $e)
- {
- echo('Error:' . $e->getMessage());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement