Отправка переменной в PHP с формой на ту же страницу, но я получаю ошибку - PullRequest
0 голосов
/ 09 ноября 2011

Пожалуйста, помогите, я кодирую страницу на 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>

1 Ответ

1 голос
/ 09 ноября 2011

Является ли subject_id строкой или числом? если это строка, вам нужно экранировать ее следующим образом:

$comment_set = mysql_query("SELECT * FROM comments WHERE subject_id = '{$subject_id}'", $connection);

Если это не так, пожалуйста, сделайте эхо на $ comment_set и опубликуйте вывод этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...