2017-04-20 69 views
0

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

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

所以,我没有想法是什么出了问题。感谢您的帮助

+0

意味着,如果我想更新数据库中的所有使用该查询的行,表中的最后一个行中的数据将被更新到第一行。这意味着第一行的od数据将被最后一行的更新数据所取代 – June

+0

根据您的要求,我得到了这样的结论:“当您更新最后一条记录时,数据正在更新到数据库中的第一条记录。你想说什么?这是你的问题吗?“澄清以便人们可以提供相同的解决方案。你的问题不是很清楚。 – prava

+0

是的,这是我面临的问题。其他行数据也不会更新 – June

回答

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); 
     } 
    } 
+0

我的结果位于循环 – June

+0

中,您需要在while循环中获取行,查看我的代码。 – Hamlet