用户更新数据库编辑

问题描述:

我正尝试用用户在论坛中编辑的帖子更新我的数据库。整个编辑表单在单击编辑表单提交并转到主论坛页面时运行良好,但数据库和帖子不会更改。用户更新数据库编辑

当按下提交编辑按钮我有这样的:

<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

该代码看起来几乎相同,在你以前的问题http://*.com/questions/5841763/why-does-my-edit-forum-answers-functionality-update-multiple-fields - 特别是你didn不应用评论中提供的一些建议。 - 这里是另一个:阅读一些关于基本调试的教程。 - 你的问题有点无聊,逐行修正不是*的目标。而且你已经在你极其基础的论坛脚本上发布了一打。 – mario 2011-05-01 00:41:03

+0

在我以前的帖子中,编辑更新了所有的答案帖子。现在它不更新任何? - 我不是故意伤害你的。我对这一切都非常陌生,这是我需要修复我的页面以使其完全运行的最后一件事。 – Novice 2011-05-01 00:46:03

+1

你没有给出任何与细节有关的信息来说明原因。打印您的SQL并打印数据,将其与数据库进行比较,手动运行查询(PhpMyAdmin)以查找。试着自己找一次原因。 - 不要发布任何关于此的更多问题。 – mario 2011-05-01 00:49:38

,首先我会做的语法更好一点。

$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。

+0

我同意理查德,添加一个打印语句,所以你在视觉上验证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

+0

我已将我的代码编辑为此格式,但没有运气 – Novice 2011-05-01 00:46:47

+0

-1如何彻底打破语法使其“更好一点”?您的建议中出现了许多语法错误。最后,请在撰写问题/答案时使用预览窗格,以检查格式。 – 2011-05-01 00:53:49