Пожалуйста, помогите, я кодирую страницу с PHP, где пользователи выбирают тему, нажимают на ссылку и направляются на страницу, где они могут комментировать. Пользователь использует небольшую форму для комментариев по теме. Я пытаюсь отправить форму на ту же страницу. Так что комментарий, который будет представлен пользователем, будет отображаться немедленно. Я отправляю переменную с формой с помощью метода GET, но я получаю: запрос базы данных завершился неудачно: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 1,
но он записывается в мою базу данных, просто не отображая данные
Вот мой код (до головы):
<?php // GET subject_id from previous page and see if it has been set if (isset($_GET['subj'])) { subject_id = $_GET['subj']; } else { $subject_id = NULL; } // process form that was submitted to same page if (isset($_POST['submit'])) { $subject_id = mysql_prep($_GET['subj']); $commentbox = trim(mysql_prep($_POST['commentbox'])); $query = "INSERT INTO comments ( subject_id, content ) VALUES ( {$subject_id}, '{$commentbox}' )"; if ($result = mysql_query($query, $connection)) { // as is, $message will still be discarded on the redirect $message = "The page was successfully created."; redirect_to("blog_subject.php"); } else { $message = "The page was unsuccessfully created."; redirect_to("blog_subject.php"); } } ?>
…… и затем код для отображения темы, комментариев и формы …
<?php // Retrieving Subject Name from subjects database global $connection; if (isset($_GET['subj'])) {$subject_id = $_GET['subj'];} $query = "SELECT * FROM subjects WHERE subject_id = {$subject_id}"; $result_set = mysql_query($query, $connection); if (!$result_set) {die("Database query Failed: " . mysql_error());} if ($subject_set = mysql_fetch_array($result_set)) { echo $subject_set['subject_name']; } else { return NULL; } ?> <br /> <?php // Retrieving Comments from comments database global $connection; $subject_id = $_GET['subj']; $comment_set = mysql_query("SELECT * FROM comments WHERE subject_id = {$subject_id}", $connection); if (!$comment_set) { die("Database query Failed: " . mysql_error()); } echo "<ul class=\"pages\">"; while ($comment_for_subject = mysql_fetch_array($comment_set)) { echo "<li>{$comment_for_subject["content"]}</li>"; } echo "</ul>"; ?> <br /> <form action="blog_subject.php?subj=<?php echo $subject_id_van_vorige_bladsy; ?>" method="post"> <textarea name="commentbox" cols="100" rows="10"></textarea><br /> <input name="submit" type="submit"> </form>
Является ли subject_id строкой или числом? если это строка, вам нужно сбежать следующим образом:
$comment_set = mysql_query("SELECT * FROM comments WHERE subject_id = '{$subject_id}'", $connection);
Если это не так, сделайте эхо на $ comment_set и опубликуйте вывод этого