将值更新到数据库中
问题描述:
我在将值更新到我的数据库时遇到问题。这里的问题是,当我更新所有行的数据时,最后一行的数据将更新到第一行。其他行将不会更新,包括最后一行。 下面是我对更新的代码...将值更新到数据库中
$sql = "SELECT * FROM product where username = '$username'";
$result = mysqli_query($con, $sql) or die(mysqli_error($con));
$rows = mysqli_fetch_array($result);
$id = $rows['pro_id'];
$boxid = $rows['box_id'];
$name = $_POST['pro_name'];
$quan = $_POST['pro_quan'];
$sold = $_POST['pro_sold'];
for ($i = 0; $i < count($_POST['pro_name']); $i++)
{
$sql = "UPDATE product
SET pro_name = '" . $name[$i] . "',
pro_quan = " . $quan[$i] . ",
pro_sold = " . $sold[$i] . "
WHERE pro_id = " . $id . "
AND box_id = '" . $boxid . "' ";
$results=mysqli_query($con, $sql);
}
所以,我没有想法是什么出了问题。感谢您的帮助
答
您需要将结果放在循环中。 类似的东西:
$sql = "SELECT * FROM product where username = '$username'";
$result = mysqli_query($con, $sql) or die(mysqli_error($con));
while ($rows = mysqli_fetch_array($result))
{
$id = $rows['pro_id'];
$boxid = $rows['box_id'];
$name = $_POST['pro_name'];
$quan = $_POST['pro_quan'];
$sold = $_POST['pro_sold'];
for ($i = 0; $i < count($_POST['pro_name']); $i++)
{
$sql = "UPDATE product
SET pro_name = '" . $name[$i] . "',
pro_quan = " . $quan[$i] . ",
pro_sold = " . $sold[$i] . "
WHERE pro_id = " . $id . "
AND box_id = '" . $boxid . "' ";
$results = mysqli_query($con, $sql);
}
}
意味着,如果我想更新数据库中的所有使用该查询的行,表中的最后一个行中的数据将被更新到第一行。这意味着第一行的od数据将被最后一行的更新数据所取代 – June
根据您的要求,我得到了这样的结论:“当您更新最后一条记录时,数据正在更新到数据库中的第一条记录。你想说什么?这是你的问题吗?“澄清以便人们可以提供相同的解决方案。你的问题不是很清楚。 – prava
是的,这是我面临的问题。其他行数据也不会更新 – June