gpt4 book ai didi

php - 试图循环遍历两个 $_POST 数组但没有成功

转载 作者:行者123 更新时间:2023-11-29 05:29:36 25 4
gpt4 key购买 nike

以下是我的表单,其中有两个不同的 $_POST 数组,“ids”和“quantities”。我正在尝试遍历它们以便更新数据库列。

我的表格:

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

我知道代码不正确,因为它不会同时遍历 quantity 和 id 数组。我需要如何调整我的代码?

最佳答案

试试这个:(用直接访问替换了第二个循环,所以你只得到想要的 ID)

$i = 0;
if(isset($_POST['submit'])) {
foreach($_POST['quantities'] as $quantity) {
$id = $_POST['ids'][$i];
$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();
$i++;
}
}

关于php - 试图循环遍历两个 $_POST 数组但没有成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16125479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com