用户更新数据库编辑
我正尝试用用户在论坛中编辑的帖子更新我的数据库。整个编辑表单在单击编辑表单提交并转到主论坛页面时运行良好,但数据库和帖子不会更改。用户更新数据库编辑
当按下提交编辑按钮我有这样的:
<input name="a_id" type="hidden" value="<? echo $rows['a_id']; ?>">
<input name="question_id" type="hidden" value="<? echo $rows['question_id']; ?>">
<input type="submit" name="Submit" value="edit post">
我保存编辑代码是这样的:
#data preparation for the query
$id=intval($_POST['id']);
$a_id=intval($_POST['a_id']);
$question_id=intval($_POST['question_id']);
foreach ($_POST as $key => $value)
$_POST[$key] = mysql_real_escape_string($value);
$sql = "UPDATE $tbl_name SET a_answer='$_POST[a_answer]' WHERE a_id='$a_id' AND question_id='$question_id'";
if (!mysql_query($sql)) {
die('Error: ' . mysql_error());
}
mysql_close;
header ("location: main_forum.php");
?>
任何想法?
编辑
对于那些谁发现这个问题不像@mario有用的,问题是我发送到保存编辑页面的变量。
<input name="a_id" type="hidden" value="<? echo $rows['a_id']; ?>">
<input name="question_id" type="hidden" value="<? echo $rows['question_id']; ?>">
本来应该
<input name="a_id" type="hidden" value="<? echo $a_id; ?>">
<input name="question_id" type="hidden" value="<? echo $question_id; ?>">
,首先我会做的语法更好一点。
$foor = $bar;
foreach()
{
}
比我不会像$ _POST那样工作。制造阵列如 $数据=阵列()
比你去
foreach ($_POST as $key => $value)
{
$data[$key] => mysql_real_escape_string($value);
}
而在这之后你的$ sql中需要看起来像这样:
$sql = "UPDATE $tbl_name SET a_answer=`$data[a_answer]` WHERE a_id=$a_id AND question_id=$question_id";
然后,如果我是你我会打印你的$ sql。
我同意理查德,添加一个打印语句,所以你在视觉上验证SQL将有所帮助。 我也将Richard的sql更新为: $ sql =“UPDATE $ tbl_name SET a_answer ='{$ data [a_answer]}'WHERE a_id = $ a_id AND question_id = $ question_id”; ...在数组引用周围添加引号和大括号。 – iandouglas 2011-05-01 00:33:18
我已将我的代码编辑为此格式,但没有运气 – Novice 2011-05-01 00:46:47
-1如何彻底打破语法使其“更好一点”?您的建议中出现了许多语法错误。最后,请在撰写问题/答案时使用预览窗格,以检查格式。 – 2011-05-01 00:53:49
该代码看起来几乎相同,在你以前的问题http://*.com/questions/5841763/why-does-my-edit-forum-answers-functionality-update-multiple-fields - 特别是你didn不应用评论中提供的一些建议。 - 这里是另一个:阅读一些关于基本调试的教程。 - 你的问题有点无聊,逐行修正不是*的目标。而且你已经在你极其基础的论坛脚本上发布了一打。 – mario 2011-05-01 00:41:03
在我以前的帖子中,编辑更新了所有的答案帖子。现在它不更新任何? - 我不是故意伤害你的。我对这一切都非常陌生,这是我需要修复我的页面以使其完全运行的最后一件事。 – Novice 2011-05-01 00:46:03
你没有给出任何与细节有关的信息来说明原因。打印您的SQL并打印数据,将其与数据库进行比较,手动运行查询(PhpMyAdmin)以查找。试着自己找一次原因。 - 不要发布任何关于此的更多问题。 – mario 2011-05-01 00:49:38