使用一个提交按钮更新多个MYSQL行

我试图用一个提交按钮更新多个MYSQL行,

在我以前为每一行创建提交之前,但是由于我现在有很多行,所以我需要一起更新所有行

index.php

<?php
if (mysqli_num_rows($row){
while($row1= mysqli_fetch_assoc($row){


id<input  type="text" value="<?php echo $row["id"];?>"  name='id' id="id"  >
id<input  type="text" value="<?php echo $row["name"];?>"  name='name' id="name"  >
}
<button type="submit" formaction="update.php">
         submit
      </button>

}

update.php


$id= $_POST['id'];
$name= $_POST['name'];

$sql = "UPDATE `$tabelname` SET  
name='$name' 
WHERE id='$id'";

仅更新第一行

xunyanli 回答:使用一个提交按钮更新多个MYSQL行

假设id是主键,

在您的html中,您需要在名称中使用一个数组。这样,表单就可以将其作为数组发送,而不仅仅是获取最后一个值:

<?php while($row1= mysqli_fetch_assoc($row): ?>
    <div>
        <label>Name: </label>
        <input type="text" value="<?=$row["name"]?>"  name="name[<?= $row["id"] ?>]" id="name-"<?= $row["id"] ?> " />
    </div>
<?php endwhile; ?>

此处的键是name =“ name []”。方括号使其成为一个数组。我正在使用ID作为索引。 (请注意,<?=只是编写<?php echo的一种更为简洁的方式)

然后,在您的php脚本中,向您展示的最简单方法是遍历数组并每次进行更新:

$row = $_POST[‘name’];
foreach($row as $id => $name) {
    // This is a big No-No!
    // $sql = "UPDATE `$tabelname` SET name='$name' WHERE id='$id'";

    // use prepared statements. Always. 
    $sql = "UPDATE `$tabelname` SET name=? WHERE id=?"; // assuming “tabelname” is not user-provided

    // database connection up to you
    $stmt = $db->prepare($sql);
    $stmt->execute( [$name,$id] );
}
本文链接:https://www.f2er.com/3134770.html

大家都在问