Как можно модифицировать данный код так, чтобы при наличии 3 значений в массиве $row['idkat'], произошло добавление 3 строк в таблицу zakaz?
Чтобы перебрать каждое значение в массиве, полученном с помощью функции mysqli_fetch_array, и добавить каждое значение в отдельную строку таблицы в базе данных MySQL, можно использовать цикл foreach. Вот пример кода: ```php // Подключение к базе данных $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // Выполнение запроса к базе данных $result = mysqli_query($conn, "SELECT * FROM table"); // Перебор значений из результата запроса while ($row = mysqli_fetch_array($result)) { foreach ($row as $value) { // Добавление каждого значения в отдельную строку таблицы mysqli_query($conn, "INSERT INTO your_table_name (column_name) VALUES ('$value')"); } } ``` Чтобы модифицировать данный код так, чтобы при наличии 3 значений в массиве $row['idkat'], произошло добавление 3 строк в таблицу zakaz, можно написать следующий код: ```php // Подключение к базе данных $conn = mysqli_connect('localhost', 'username', 'password', 'database'); // Выполнение запроса к базе данных $result = mysqli_query($conn, "SELECT * FROM table"); // Перебор значений из результата запроса while ($row = mysqli_fetch_array($result)) { $idkat_values = explode(',', $row['idkat']); foreach ($idkat_values as $value) { // Добавление каждого значения в отдельную строку таблицы mysqli_query($conn, "INSERT INTO zakaz (column_name) VALUES ('$value')"); } } ``` В данном случае предполагается, что значения в массиве $row['idkat'] разделены запятыми. Мы используем функцию explode(), чтобы разделить строку на массив значений, а затем перебираем каждое значение и добавляем его в отдельную строку таблицы zakaz.
У вас:
while($row=mysqli_fetch_array($res)) { // ######################### // #### начало тела цикла ##### // ########################## $iduser=$id; $idkat=$row['idkat']; // ######################### // #### конец тела цикла ##### // ########################## } $res=mysqli_prepare($bd, "INSERT INTO zakaz (iduser,idkat) VALUES(?,?)"); mysqli_stmt_bind_param($res, 'ii', $iduser,$idkat); // подставляем переменные, которые присвоились на ПОСЛЕДНЕМ прогоне цикла $result2=mysqli_stmt_execute($res);
Как вы ожидаете:
while($row=mysqli_fetch_array($res)) { // ######################### // #### начало тела цикла ##### // ########################## $iduser=$id; $idkat=$row['idkat']; $res=mysqli_prepare($bd, "INSERT INTO zakaz (iduser,idkat) VALUES(?,?)"); mysqli_stmt_bind_param($res, 'ii', $iduser,$idkat); // подставляем переменные, которые присвоились на ТЕКУЩЕМ прогоне цикла $result2=mysqli_stmt_execute($res); // ######################### // #### конец тела цикла ##### // ########################## }