<form method="post" action="submit.php">
<input type="checkbox" name="fruit[]" value="apple"> Apple<br>
<input type="checkbox" name="fruit[]" value="banana"> Banana<br>
<input type="checkbox" name="fruit[]" value="orange"> Orange<br>
<input type="submit" name="submit" value="Submit">
</form>
Эта форма содержит три checkbox-а, каждый из которых имеет свое значение apple
, banana
и orange
. Обратите внимание на атрибут name каждого checkbox-а – они должны быть одинаковыми, чтобы в PHP-скрипте мы могли обработать их данные как массив.
<?php
if (isset($_POST['submit'])){
// подключение к базе данных
$conn = mysqli_connect("localhost", "root", "", "mydb") or die ("Ошибка подключения к базе данных");
// получение значений checkbox-ов
$fruit = $_POST['fruit'];
// обновление значений в базе данных
foreach ($fruit as $value){
$sql = "UPDATE fruit SET price = price + 1 WHERE name = '$value'";
mysqli_query($conn, $sql);
}
// закрытие соединения с базой данных
mysqli_close($conn);
}
?>
Давайте разберем этот код по частям.
Мы начинаем с проверки, была ли отправлена форма (мы проверяем наличие значения submit
). Если форма была отправлена, то мы начинаем работу с базой данных.
Подключаемся к базе данных с помощью функции mysqli_connect()
. В этом примере мы используем локальный сервер с именем localhost
и базу данных mydb
. Если подключение не удалось, выводим сообщение об ошибке.
Далее мы получаем значение переменной $fruit
, которая является массивом checkbox-ов. Напомню, что имена checkbox-ов в форме должны совпадать и иметь значение fruit[]
.
Мы обновляем значения в базе данных с помощью цикла foreach()
. В этом примере мы увеличиваем цену каждого выбранного фрукта на 1
. Для каждого фрукта мы создаем новый SQL-запрос, используя значение из массива $fruit
.
Наконец, закрываем соединение с базой данных с помощью функции mysqli_close()
.
Прежде чем запустить наш PHP-скрипт, мы должны создать структуру базы данных. Давайте создадим таблицу fruit
со следующими полями:
id (int, primary key, auto increment)
name (varchar)
price (int)
Наконец, вставляем в таблицу несколько начальных значений:
INSERT INTO fruit (name, price) VALUES ('apple', 1), ('banana', 2), ('orange', 3);
Теперь у нас есть HTML-форма с checkbox-ами, PHP-скрипт для обработки данных и база данных, которую мы будем обновлять. Мы создали таблицу fruit
и внесли в нее несколько начальных значений.
В этой статье мы рассмотрели, как отправить значения всех checkbox-ов в базу данных MySQL при нажатии на любой из них. Вы можете использовать этот пример для создания любых других форм, которые требуют использования checkbox-ов.