我正在尝试使用PHP代码更新MySQL数据库中的记录。问题是,如果只有一条记录正在更新,但对于表中的多条记录,相同的代码不会更新其中的任何一条。我不知道为什么。以下是来自edit.PHP页面的一部分PHP代码("user"可能会产生混淆;这是关于一个使用密码登录的管理员用户,可以更改其他用户的数据)
session_start();
$user = $_SESSION['username'];
$pass = $_SESSION['password'];
if (isset($_POST ['updateuser'])){
$UpdateQuery="UPDATE user SET email='$_POST[email]', name='$_POST[name]', surname='$_POST[surname]', grade='$_POST[grd]'";
mysql_query($UpdateQuery, $link);};
if(isset($_POST ['Edit']))
{ $sql = "SELECT * FROM user WHERE idUser = '$user'";
$p = mysql_query($sql, $link);
echo '<table border=1 >
<tr>
<th>email</th>
<th>name</th>
<th>surname</th>
<th>grade</th>
</tr>';
while($record=mysql_fetch_array($p)){
echo '<form action=edit.php method=post>';
echo '<tr>';
echo '<td><input type=text name=email value=" '.$record['email']. '"></td>';
echo '<td><input type=text name=name value=" '.$record['name']. '"></td>';
echo '<td><input type=text name=surname value=" '.$record['surname']. '"></td>';
echo '<td><input type=text name=grd value=" '.$record['grade']. '"></td>';
echo '<td><input type=hidden name=hidden value=" ' .$record['idUser']. '"></td>';
echo '<td><input type=submit name=updateuser value=Update></td>';
echo '</form>';
}
echo '</table>';}
您忘记在更新查询中添加条件子句。试试这个
$UpdateQuery="UPDATE user SET email='$_POST[email]', name='$_POST[name]', surname='$_POST[surname]', grade='$_POST[grd]' WHERE idUser = '$user'";
而不是
$UpdateQuery="UPDATE user SET email='$_POST[email]', name='$_POST[name]', surname='$_POST[surname]', grade='$_POST[grd]'";
您的Update查询没有WHERE
子句,使用类似的somting
$UpdateQuery="UPDATE user SET email='$_POST[email]', name='$_POST[name]', surname='$_POST[surname]', grade='$_POST[grd]' WHERE idUser = '$user'";