Обновление нескольких строк MySQL с помощью данных формы
В веб-разработке обычно используются формы, в которых пользователи могут редактировать записи из базы данных. Распространенным сценарием является обновление нескольких строк в одной таблице измененными данными. Этого можно добиться с помощью PHP и MySQL.
Структура формы и поиск данных
Первоначальная форма отвечает за представление данных, подлежащих редактированию. В этом примере форма извлекает все фотографии с определенным GALLERY_id из базы данных и отображает их с полями для изменения названия фотографии и тегов.
Отправка и обновление данных
При отправке формы данные отправляются в PHP-скрипт для обработки. Скрипт использует цикл foreach для перебора опубликованных данных и извлечения значений идентификатора фотографии, заголовка и тегов.
Обновление строк с помощью подготовленных операторов
Следующий Шаг — обновить соответствующие строки в базе данных. Для этого используется подготовленный оператор. Он включает в себя:
Цикл по массивам форм
Чтобы разрешить обновление нескольких строк, поля HTML-формы передаются как массивы. Это достигается за счет использования нотации [] в именах полей:
echo "В PHP-скрипте доступ к этим массивам осуществляется с помощью цикла foreach, что позволяет сценарию перебирать данные и соответствующим образом обновлять каждую строку.
Пример кода
Обновленный PHP-скрипт будет выглядеть так:
foreach ($_POST['photo_id'] as $key => $photo_id) { $id = $photo_id; $title = $_POST['photo_title'][$key]; $tags = $_POST['photo_tags'][$key]; $sql = "UPDATE photos SET title=?, tags=? WHERE id=?"; $query = $db->prepare($sql); $query->execute(array($title, $tags, $id)); }
Следуя этим шагам, вы сможете эффективно публиковать данные формы и обновлять несколько строк в таблице MySQL.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3