/** * Save data for a post * * @return string Info in HTML */ private function SavePost() { // The post must have a title if (empty($_POST['title'])) { return "<p>Inlägget måste ha en titel. <a href='#' onclick='javascript:history.back();return false;'>Gå tillbaka</a></p>"; } // Get and prepare values $values = $_POST; unset($values['save']); $values['title'] = "'" . htmlentities(strip_tags($values['title']), ENT_QUOTES) . "'"; $values['content'] = "'" . htmlentities($values['content'], ENT_QUOTES) . "'"; // SQL for insert new post if (empty($values['postId'])) { unset($values['postId']); $sql = "INSERT INTO rm_BlogPost (" . implode(", ", array_keys($values)) . ") VALUES " . "(" . implode(", ", array_values($values)) . ")"; } else { $postId = $values['postId']; unset($values['postId']); $sql = "UPDATE rm_BlogPost SET "; foreach ($values as $key => $val) { $sql .= $key . " = " . $val . ", "; } $sql = rtrim($sql, ", "); $sql .= " WHERE postId = {$postId}"; } // Execute the SQL parent::ExecuteQuery($sql); // Get id for new post if (!isset($postId)) { $postId = parent::LastInsertId(); } // Return some content $html = "<p>Kanon, det fungerade!</p>" . "<p>Du kan nu <a href='./news.php?show={$postId}'>visa</a> eller <a href='./news.php?edit={$postId}'>redigera</a> inlägget, <a href='./news.php?add'>skriva nytt</a> inlägg eller gå tillbaka till <a href='./news.php'>nyhetssidan</a>.</p>"; return $html; }
// 9.2 Endast första parametern (SQL-frågan) är obligatorisk, övriga frivilliga // 9.3 Metoden returnerar true eller false beroende på om frågan lyckades eller ej // 10 En SQL-query för att lägga till en film $qry = 'INSERT INTO movie(title,year) VALUES(?,?)'; // 11. Skapar en array som innehåller de värden för filmen som ska läggas in $params = array('Terminator 5', 2015); // 12. Anropar ExecuteQuery() $res = $dbh->ExecuteQuery($qry, $params); // 13. Använder dump() samt var_dump() för att skriva ut $res. dump($res); echo var_dump($res); // 13.1 dump returnerade 1 och var_dump returnerade bool(true) // 13.2 Det betyder att insättningen lyckades // 14. Läste om CDatabase::LastInsertId() // 15. Anropa och skriv ut resultatet av LastInsertId() echo "last insert id:" . $dbh->LastInsertId(); // 15.1 ID:t blev i detta fall 12 // 16. Skriver och kör delete-query $qry = 'DELETE FROM movie WHERE YEAR = ?'; $params = array('2015'); $res = $dbh->ExecuteQuery($qry, $params); // 17. Använder dump() och var_dump() dump($res); var_dump($res); // 17.1 Först returnerades false (men sedan ändrade jag frågan till litet fältnamn year och ett likhetstecken och då funkade det) sedan ändrade jag tillbaka // 17.2 Att false returnerades beror på på att nått gick fel // 18. Läste i CDatabase om ErrorCode() och ErrorInfo() // 19. Anropa och skriv ut resultatet av ErrorCode() och ErrorInfo(). echo "ErrorCode: " . $dbh->ErrorCode(); var_dump($dbh->ErrorInfo()); // 19.1 Felkod 42000 visas
/** * Save data for a movie * * @return string Info in HTML */ private function SaveMovie() { // Movie must have title and at least one genre if (empty($_POST['title'])) { return "<p>Filmen måste ha en titel. <a href='#' onclick='javascript:history.back();return false;'>Gå tillbaka</a></p>"; } if (empty($_POST['genre'])) { return "<p>Filmen måste minst ha en genre vald. <a href='#' onclick='javascript:history.back();return false;'>Gå tillbaka</a></p>"; } // Get values $values = $_POST; $genres = $values['genre']; unset($values['genre']); // Unset some values, prepare as string for some others foreach ($values as $key => $val) { if (in_array($key, array('save', 'year', 'price')) && !is_numeric($val) || empty($val)) { unset($values[$key]); } elseif (!is_numeric($val)) { $values[$key] = "'" . htmlentities(strip_tags($val), ENT_QUOTES) . "'"; } } // SQL for insert new movie if (empty($values['id'])) { unset($values['id']); $sql = "INSERT INTO rm_Movie (" . implode(", ", array_keys($values)) . ") VALUES " . "(" . implode(", ", array_values($values)) . ")"; // $id = parent::LastInsertId(); } else { $id = $values['id']; unset($values['id']); $sql = "UPDATE rm_Movie SET "; foreach ($values as $key => $val) { $sql .= $key . " = " . $val . ", "; } $sql = rtrim($sql, ", "); $sql .= " WHERE id = {$id}"; } // Execute the SQL parent::ExecuteQuery($sql); // Get id for new movie ... if (!isset($id)) { $id = parent::LastInsertId(); } else { $sql = "DELETE FROM rm_Movie2Genre WHERE idMovie = {$id}"; parent::ExecuteQuery($sql); } // Make array of all genres with their id's $sql = "SELECT * FROM rm_Genre"; $allGenres = parent::ExecuteSelectQueryAndFetchAll($sql); foreach ($allGenres as $val) { $genreId[$val->id] = $val->name; } // Make array with genreId for current movie foreach ($genres as $val) { $insVal[] = "({$id}, " . array_search($val, $genreId) . ")"; } // Insert genres into database $sql = "INSERT INTO rm_Movie2Genre (idMovie, idGenre) VALUES " . implode(", ", $insVal); parent::ExecuteQuery($sql); // Return some content $html = "<p>Kanon, det fungerade!</p>" . "<p>Du kan nu <a href='./movies.php?show={$id}'>visa</a> eller <a href='./movies.php?edit={$id}'>redigera</a> filmen, <a href='./movies.php?add'>lägga till</a> ny film eller gå tillbaka till <a href='./movies.php'>filmlistan</a>.</p>"; return $html; }
if ($acronym == null) { echo <<<EOD <div style=" border: 1px solid #777; border-radius: 3px; padding: 10px 20px;"> <h2 style="margin-top: 0;">Du måste vara inloggad för att få skapa ny film</h2> <p>Använd menyn uppe till höger på denna sida.</p> </div> EOD; } else { // Check if form was submitted if ($create) { $sql = 'INSERT INTO oophp0710_movie (title,year) VALUES (?,?)'; $params = array($title, $year); $db->ExecuteQuery($sql, $params); $db->SaveDebug(); $sql2 = 'INSERT INTO oophp0710_movie2genre(idMovie,idGenre) VALUES (?,?)'; $lastInsertId = $db->LastInsertId(); $params2 = array($lastInsertId, 1); $db->ExecuteQuery($sql2, $params2); $db->SaveDebug(); $sql3 = 'INSERT INTO oophp0710_movie2image(movie_id,image_id) VALUES (?,?)'; $params3 = array($lastInsertId, 1); $db->ExecuteQuery($sql3, $params3); $db->SaveDebug(); echo "Ny film sparad. <a href='?p=updatemovie' class='aButton'>Editera</a>"; } else { //var_dump($user->isAdmin()); $disabled = ''; $info = ''; if (!$user->isAdmin()) { $disabled = "disabled"; $info = "<p> Du kan inte editera eftersom du inte är administratör.</p>";