用户编辑更新数据库

时间:2011-05-01 00:16:48

标签: php

我正在尝试使用用户在论坛中编辑的帖子更新我的数据库。当他们点击编辑表单提交并进入主论坛页面时,整个编辑表单的功能都有效,但数据库和帖子不会改变。

按下提交编辑按钮时,我有:

    <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; ?>">

1 个答案:

答案 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上打印。