如何使用php将多条记录插入mysql

如何使用php将多条记录插入mysql,php,mysql,Php,Mysql,我正在从数据库中获取不同的记录,但使用单个数量字段尝试将多个记录插入MYSQL,但每次for循环或任何其他循环覆盖所有行中的单个值(在每个字段中插入单个第一个值),都严重卡住。请建议应采取何种适当步骤 <input type="text" name="qty[]" id="qtyid" style="width:40px;"> <?php if(isset($_POST["update"])) { $usersCount=count($_POST['qty']);

我正在从数据库中获取不同的记录,但使用单个数量字段尝试将多个记录插入MYSQL,但每次for循环或任何其他循环覆盖所有行中的单个值(在每个字段中插入单个第一个值),都严重卡住。请建议应采取何种适当步骤

<input type="text" name="qty[]" id="qtyid" style="width:40px;">

<?php   
if(isset($_POST["update"])) {
  $usersCount=count($_POST['qty']);

  $qtys=implode(",",$_POST['qty']);
  for($i=0;$i<$usersCount;$i++) {
    $query="UPDATE cart set qty='".$qtys."' WHERE prodid='$cartid'";
    $dbh->query($query);
    echo $qtys; 
  }
}
$total=$total*$qtys;
?>

你的“问题”不清楚。我读了好几遍,但我还是不知道你有什么问题

无论如何。我将尝试解释代码的作用,以防它帮助您了解问题所在

//if form was submited and input of name "update" was in
if(isset($_POST["update"])) {

  // count array created by inputs of name="qty[]"
  $usersCount=count($_POST['qty']);

  // make a string from that array, separating the keys by a "," char
  $qtys=implode(",",$_POST['qty']);

  // loop as many times as number of elements in that array = <input name="qty[]"> you had in submited form
  for($i=0;$i<$usersCount;$i++) {

    // and finally, do always the same for each loop repeat
    $query="UPDATE cart set qty='".$qtys."' WHERE prodid='$cartid'";
    $dbh->query($query);
    echo $qtys; 
  }
}
基本上,要做到这一点,不需要循环。
因为在该查询中,只要列
prodid
等于
something

时,您就可以更改列
qty
的值。构建查询,然后将值添加到循环中的查询中。您已经发布了该值,但没有退出。请你举个例子,谢谢你。我只是尝试插入多个数量,其中prodid=$cartid(产品id,比如说2和4)。例如,用户为产品id no 2输入了15个数量,为产品id no 4输入了20个数量,但正在发生的情况是查询在两行中插入并重复15个首次插入的值,其中产品id 2和4而不是两个值,当我通过打印调试值时,它显示不同的值。现在可能清楚了。值可能不同,但我找不到在您的
for
中更改
$cartid
值的位置。看起来“$cartid”对于循环的每次重复都保持不变。因此,代码只会
更新
行,其中(例如)
prodid=2
。您需要在循环中为不同的
prodid
行更改
$cartid
。这也可能有帮助:
`$query="UPDATE cart set qty='".$qtys."' WHERE prodid='$cartid'";`