если - еще в многократном обновлении в одном запросе - PullRequest
0 голосов
/ 10 января 2020

У меня проблема с этим запросом:

foreach ($_POST['cod'] as $i => $cod) {
    $sth = $conn->prepare("UPDATE LPRODALMACEN SET `existencia` = `existencia` + :comprado WHERE `cod` = :cod");
    $sth->bindParam(':comprado', $tExiste[$i]);
    $sth->bindParam(':cod', $_POST['cod'][$i]);
    $sth->execute();
    $i++;
}

Мне нужно сделать if - else, если условие равно 1 или 0, с этим:

$_POST['medida'][$i] == '0' ? $_POST['comprado'][$i] : $_POST['tExiste'][$i];

Как я могу введите внутри запроса, если $ medida == 0, добавьте значение из $comprado или, если medida == 1, значение из $tExiste?

1 Ответ

1 голос
/ 10 января 2020

Установите переменную на основе условия.

Кроме того, вам не нужно использовать prepare() и bindParam() в l oop. Вы готовитесь и связываете один раз, затем выполняете в l oop. bindParam() привязывается к ссылкам, поэтому вы просто обновляете переменные в l oop.

$sth = $conn->prepare("UPDATE LPRODALMACEN SET `existencia` = `existencia` + :comprado WHERE `cod` = :cod");
$sth->bindParam(":comprado", $comprado);
$sth->bindParam(":cod", $cod);
foreach ($_POST['cod'] as $i => $cod) {
    $comprado = $_POST['medida'][$i] == '0' ? $_POST['comprado'][$i] : $_POST['tExiste'][$i];
    $sth->execute();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...