2011-05-01 103 views
-1

我正嘗試用用戶在論壇中編輯的帖子更新我的數據庫。整個編輯表單在單擊編輯表單提交併轉到主論壇頁面時運行良好,但數據庫和帖子不會更改。用戶更新數據庫編輯

當按下提交編輯按鈕我有這樣的:

<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://stackoverflow.com/questions/5841763/why-does-my-edit-forum-answers-functionality-update-multiple-fields - 特別是你didn不應用評論中提供的一些建議。 - 這裏是另一個:閱讀一些關於基本調試的教程。 - 你的問題有點無聊,逐行修正不是Stackoverflow的目標。而且你已經在你極其基礎的論壇腳本上發佈了一打。 – 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

回答

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

+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

相關問題