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

问题描述 投票:0回答:3
php mysql loops
3个回答
2
投票

试试这个:(用直接访问替换了第二个循环,这样你就只能得到想要的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++;
        }
    }

1
投票

由于您想同时循环 2 个数组,因此最好在索引上使用常规 for 循环,而不是 foreach 循环:

if(isset($_POST['submit'])) {
    $count = count($_POST['quantities']);
    for($i = 0; $i < $count; $i++) {
        $stmt = $db->prepare("UPDATE titles SET release_quant=:release_quant WHERE id=:id");
        $stmt->bindValue(':release_quant', $_POST['quantities'][$i], PDO::PARAM_INT);
        $stmt->bindValue(':id', $_POST['ids'][$i], PDO::PARAM_INT);
        $stmt->execute();
    }
}

0
投票

$total_inputs=count($_POST['inp_id_enterprise']);

对于 ($ixa=0;$ixa<$total_inputs;$ixa++) {

 $id_enterprise=trim($_POST['inp_id_enterprise'][$ixa]);
 $name_enterprise=$_POST['inp_name_enterprise'][$ixa];
 //... some code, like insert into or update

  

}

© www.soinside.com 2019 - 2024. All rights reserved.