我正在尝试使用用户在论坛中编辑的帖子更新我的数据库。当他们点击编辑表单提交并进入主论坛页面时,整个编辑表单的功能都有效,但数据库和帖子不会改变。
按下提交编辑按钮时,我有:
<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; ?>">
答案 0 :(得分:-1)
首先,我会使语法更好一些。
$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上打印。