所以,我有一個頁面上有一堆工作訂單。每個工單都是單個表中的一行,並通過while()語句放在頁面上。 我試圖用一個簡單的表單來更新每一行,我把它放在while()和一個UPDATE/WHERE語句中以實際將信息添加到表中。WHILE語句中的更新
而不是將其添加到特定的行,它將其添加到每一行。我唯一能想到的是,我的WHERE條件是錯誤的,但我似乎無法弄清楚。也許它只是需要新鮮的眼睛,或者我正朝着完全錯誤的方向前進。另外,關於安全性的任何特定指示,更好的方法等,都會非常有幫助。我在飛行中學習PHP,並可以使用幫助。 :)
<?php
$query = "SELECT * FROM client_information";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$which_ad = $row['ID'];?>
<b>Name:</b> <? echo $row['billing_name']; ?> <br>
<b>Job Type:</b> <? echo $row['job_type']; ?> <br>
<b>Size:</b> <? echo $row['size']; ?> <br>
<b>Text:</b> <? echo $row['text']; ?> <br>
<b>Notes:</b> <? echo $notes; ?> <br>
<br><br>
<form action="small_update.php" method="POST">
<strong>Email Message:</strong><br>
<textarea rows="8" cols="60" name="email_message"></textarea>
<input type="submit" name="submit" value="Submit"></form>
<?
$email_message = htmlspecialchars ("{$_POST['email_message']}", ENT_QUOTES);
if (mysql_errno() != 0) {
die(mysql_error());
}
mysql_query(
"UPDATE client_information
SET email_message='$email_message'
WHERE ID='$which_ad'"
);
if (mysql_errno() != 0) {
die(mysql_error());
}
}
?>
提示:sets,sets,sets。 –
mysql_fetch_array()是使用mysql操作的一種令人沮喪的形式。請參閱爲所有mysql連接使用mysqli_fetch_array()或PDO。 [mysqli info](http://php.net/manual/en/function.mysql-fetch-array.php) – djowinz
每一行都會得到相同的'email_message',因爲你從同一個'$ _POST '。您的原始'SELECT'查詢將提取所有行,並且您的while循環會使用相同的值更新表中的所有行。你的意思是爲'email_message'使用不同的值嗎? –