Справочники, инструменты, документация

SQL: Отправка значений checkbox

Отправка значений всех checkbox в MySQL при нажатии на любой – важная задача для веб-разработчика. В этой статье мы рассмотрим, как сделать это с помощью PHP и MySQL.

Шаг 1. Создание HTML-формы с checkbox-ами

<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-скрипте мы могли обработать их данные как массив.

Шаг 2. Создание 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().

Шаг 3. Создание структуры MySQL-таблицы для хранения данных

Прежде чем запустить наш 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-ов.