gpt4 book ai didi

PHP 表单更新所有 mysql 行而不是 1 行

转载 作者:行者123 更新时间:2023-11-29 22:01:29 25 4
gpt4 key购买 nike

if (isset($_POST['update'])){
$UpdateQuery = "UPDATE eventcalendar SET Title='$_POST[title]', Detail='$_POST[detail]' WHERE ID='$_GET[ID]'";
mysql_query($UpdateQuery, $con);
}

$sql = "SELECT * FROM eventcalendar";
$myData = mysql_query($sql,$con);

echo "<table border=1'>
<tr>
<th>Id</th>
<th>Title</th>
<th>Detail</th>
<th>Event Date</th>
<th>Date Added</th>
</tr>";

while($row = mysql_fetch_array($myData)){
echo "<form action=details.php method=post>";
echo "<tr>";
echo "<td>" . $row['ID'] . "</td>";
echo "<td>" . "<input type=text name=title value=" . $row['Title'] . " </td>";
echo "<td>" . "<input type=text name=detail value=" . $row['Detail'] . " </td>";
echo "<td>" . $row['eventDate'] . "</td>";
echo "<td>" . $row['dateAdded'] . "</td>";
echo "<td>" . "<input type=submit name=update value=update" . " </td>";

echo "</tr>";
echo "</form>";
}
echo "</table>";

mysql_close($con);

这是我的代码,但是当我尝试执行它时,它会执行表中的所有行,而不是我编辑的唯一行。我已经找了大约2个小时了,但还是没有找到。你们中有人知道我该如何解决这个问题吗?

最佳答案

看起来您需要在表单操作中包含 ID。

echo '<form action="details.php?ID='.$row['ID'].'" method="post">';

这将允许在更新查询中使用 $_GET['ID'] 值。

或者,将 ID 添加为表单中的隐藏字段,例如

echo '<input type="hidden" name="ID" value="'.$row['ID'].'">';

并将 SQL 查询更改为使用 $_POST['ID'] 而不是 $_GET['ID']

$UpdateQuery = "UPDATE eventcalendar SET Title='$_POST[title]', Detail='$_POST[detail]' WHERE ID='$_POST[ID]'";

您还需要研究的是转义您在 SQL 语句中使用的输入。

关于PHP 表单更新所有 mysql 行而不是 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32610160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com