1

以下は、「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 配列を同時にループしないため、コードが正しくないことはわかっています。コードをどのように調整する必要がありますか?

4

2 に答える 2