Это код, в котором я получаю свои имена и значения ввода из таблицы, называемой optionale, и делаю что-то с ними:
<form role="form" autocomplete="off" action="includes/functions/fisa-init.php" method="POST"> <?php connectDB(); $query = mysqli_query($mysqli, "SELECT * FROM `optionale`") or die(mysqli_error($mysqli)); while($row = mysqli_fetch_array($query)) { ?> <span><?php echo $row['denumire']; ?></span> <input type="text" name="nrBucati"> <input type="hidden" value="<?php echo $row['cod']; ?>" name="codProdus"> <?php } ?> </form>
Таблица optionale выглядит так:
HTML выглядит так:
Как вы можете видеть на последнем снимке, у меня есть в HTML, имя для ввода (взято из таблицы optionale) и фактический ввод, в котором я пишу значение.
Фис-init.php:
$stmt3 = $mysqli->prepare(" UPDATE `stocuri` SET `cantitate` = `cantitate` - ? WHERE `cod` = ? "); $stmt3->bind_param("is", $bucata, $cod); // set parameters and execute $bucata = mysqli_real_escape_string($mysqli, $_POST['nrBucati']); $cod = mysqli_real_escape_string($mysqli, $_POST['codProdus']); if (!$stmt3->execute()) { echo "Execuția a întâmpinat o eroare: (" . $stmt3->errno . ") " . $stmt3->error; } $stmt3->close(); $mysqli->close();
В приведенном выше коде (fisa-init.php) я пытаюсь взять все входные значения из своего HTML и обновить строки в другой таблице, называемой stocuri
:
Как вы можете видеть, обновлена только вторая строка из таблицы stocuri
, но я написал значения во всех 5 входах. Он получил только последний вход.
Как изменить цикл while, чтобы получить все мои значения ввода?
Если что-то непонятно, я извиняюсь сто раз. Я объясню всю необходимую информацию.
PS cod
в таблице optionale
совпадает с stocuri
в stocuri
таблицы. Таким образом, я знаю, где обновлять значения.
Каждый <input>
ДОЛЖЕН иметь индивидуальное имя или именованный массив.
Поэтому дайте каждому дополнительный номер, например name1,name2
или используйте именованный массив, например name[]
Наконец, это name="codProdus[]"
– ваше решение.
Подробнее здесь Входные массивы HTML
Хорошего дня