PHP

PHP checkbox



Удаление и выборка нескольких записей
В Web-программировании, особенно при создании различных панелей администрирования, часто встает задача множественного выбора или удаления сразу нескольких записей из базы данных. Для этих целей удобно использовать элементы checkbox для формирования массива переменных PHP.

Пусть имеется таблица table_1, содержащая два поля: первичный ключ таблицы (id), текстовое поле (name).
Для удаления записей обычно создается HTML-форма с набором checkbox, как это показано в листинге ниже:
<form action="handler.php" method="post">
<label><input type="checkbox" name="type[]" value="1" />Первый</label><br />
<label><input type="checkbox" name="type[]" value="2" />Второй</label><br />
<label><input type="checkbox" name="type[]" value="3" />Третий</label><br />
<label><input type="checkbox" name="type[]" value="4" />Четвертый</label><br />
<label><input type="checkbox" name="type[]" value="5" />Пятый</label><br />
<label><input type="checkbox" name="type[]" value="6" />Шестой</label><br />
<label><input type="checkbox" name="type[]" value="7" />Седеьмой</label><br />
<input type="submit" value="Подтвердить" />
</form>

Обработчик формы handler.php может выглядеть так, как представлено в листинге ниже:
<?php
// Удалить сразу несколько записей можно
// при помощи запроса "DELETE FROM table_1 WHERE id IN (1,3,5,7)"
// Получаем список отмеченных checkbox
$type = $_POST[`type`];
if(!empty($type))
{
// Начинаем формировать переменную, содержащую этот список
// в формате "(3,5,6,7)"
$query = "(" ;
foreach($type as $val) $query.= "$val,";
// Удаляем последнюю запятую, заменяя ее закрывающей скобкой)
$query = substr($query, 0, strlen($query) - 1 ). ")" ;
// Завершаем формирование SQL-запроса на удаление
$query = "DELETE FROM table_1 WHERE id IN ".$query;
// Выполняем запрос
if(!mysql_query($query))
{
echo mysql_error()."<br>";
echo $query."<br>";
}
}
?>

Если перед Web-приложением стоит задача не уничтожения записей, а их выборка, то вместо SQL-оператора DELETE следует использовать SQL-оператор SELECT, соответствующим образом изменив скрипт.
Добавлено: 13 Сентября 2013 02:07:44 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...