以下は、「ids」と「quantities」という 2 つの異なる $_POST 配列を持つ私のフォームです。データベース列を更新できるように、それらをループしようとしています。
私のフォーム:
<form action="" method="post">
<ul>
<?php foreach($rows as $row) { ?>
<li>
<input type="hidden" name="ids[]" value="<?php echo $row['id']; ?>">
</li>
<li>
<input type="text" name="quantities[]" value="1" size="3">
<?php echo $row['title']; ?>
</li>
<?php } ?>
<li>
<br><input type="submit" value="Submit New Release Edits" name="submit">
</li>
</ul>
</form>
データベースを適切に更新するために実行しようとしているコードは次のとおりです。
if(isset($_POST['submit'])) {
foreach($_POST['quantities'] as $quantity) {
foreach($_POST['ids'] as $id) {
$stmt = $db->prepare("UPDATE titles SET release_quant=:release_quant WHERE id=:id");
$stmt->bindValue(':release_quant', $quantity, PDO::PARAM_INT);
$stmt->bindValue(':id', $id, PDO::PARAM_INT);
$stmt->execute();
}
}
}
数量配列と ID 配列を同時にループしないため、コードが正しくないことはわかっています。コードをどのように調整する必要がありますか?