将值更新到数据库中

时间:2017-04-20 11:11:13

标签: php

我在将值更新到数据库时遇到问题。这里的问题是,当我更新所有行的数据时,最后一行的数据将更新到第一行。其他行不会更新,包括最后一行。 以下是我的更新代码......

$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);
}

所以,我不知道出了什么问题。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

您需要将结果放在循环中。 这样的事情:

    $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);
        }
    }