Php while循环中的输入数组,为每个输入传递$\u POST

Php while循环中的输入数组,为每个输入传递$\u POST,php,mysql,arrays,sql-parametrized-query,Php,Mysql,Arrays,Sql Parametrized Query,我无法通过$\u POST获取所有输入数组值。详情见: 如何通过POST从HTML的数组nrBucati[]和codProdus[]中获取每个输入值 这样做可以正确分配/配对两个参数,然后在循环中执行查询调用 $stmt3 = $mysqli->prepare(" UPDATE `stocuri` SET `cantitate` = `cantitate` - ?

我无法通过
$\u POST
获取所有输入数组值。详情见:


如何通过POST从HTML的数组
nrBucati[]
codProdus[]
中获取每个输入值

这样做可以正确分配/配对两个参数,然后在循环中执行查询调用

$stmt3 = $mysqli->prepare("
            UPDATE 
            `stocuri` 
            SET 
            `cantitate` = `cantitate` - ?
            WHERE `cod` = ?
            ");


    $stmt3->bind_param("is", $bucata, $cod);

    // set parameters and execute
    foreach( $_POST['nrBucati'] as $bucata ) {
    return $bucata; 
    }

    foreach( $_POST['codProdus'] as $cod ) {
    return $cod;
    }

    if (!$stmt3->execute()) 
        {
            echo "Execuția a întâmpinat o eroare: (" . $stmt3->errno . ") " . $stmt3->error;
        }
    $stmt3->close();

运行
foreach
并在
foreach
循环中准备数据:

foreach( $_POST['nrBucati'] as $id => $bucata ) {
    $cod = $_POST['codProdus'][$id];

    if (!$stmt3->execute()) 
        {
            echo "Execuția a întâmpinat o eroare: (" . $stmt3->errno . ") " . $stmt3->error;
        }
}

我想我需要将2个foreach组合成一个,并在其中执行查询。为什么输入名称是数组?您应该仅将其用于复选框类型的输入,其中每个输入名称可以有多个可能的值。对于文本/隐藏字段,您应该只使用字符串。我不完全确定您在这里尝试执行的操作,但您不能使用
return
关键字从循环返回多个值……如果我不使用数组作为名称,我将只获得一个输入值,而不是全部。看这里:@EatPeanutButter你是对的。我现在意识到了。哈哈。工作得很有魅力!!!!你救了我的命!我爱你,伙计。谢谢你理解我拙劣的解释!我知道我必须以某种方式组合这两个参数,但不知道如何组合。
foreach( $_POST['nrBucati'] as $id => $bucata ) {
    $cod = $_POST['codProdus'][$id];

    if (!$stmt3->execute()) 
        {
            echo "Execuția a întâmpinat o eroare: (" . $stmt3->errno . ") " . $stmt3->error;
        }
}
// Get posted data and execute
foreach( $_POST['nrBucati'] as $key=>$bucata ) {
    $cod = $_POST['codProdus'][$key]; // For object change this to $_POST['codProdus']->$key;

    $stmt3= $mysqli->prepare("UPDATE `stocuri` SET `cantitate` = `cantitate` - ? 
                              WHERE `cod` = ? ");
    $stmt3->bind_param("is", $bucata, $cod);

    if (!$stmt3->execute()){

        echo "Execuția a întâmpinat o eroare: (" . $stmt3->errno . ") " . $stmt3->error;
    }

    $stmt3->close();

}