Одновременное удаление записей
Вы, возможно, захотите удалить одновременно несколько записей. Этот урок покажет Вам, как это сделать. Чтобы это сделать, нам понадобится PHP и база данных MySql. Шаг за шагом Вы научитесь удалять одновременно несколько записей.
Шаг 1 - Настройка базы данных
Первое, что мы должны сделать, это создать базу данных. Откроем PHPMyAdmin и создадим новую базу данных, назовем ее sampledb. В эту базу данных нам необходимо добавить таблицу с именем products.
Параметры таблицы следующие:
id – INT – Primary Key – Auto Increment product_title – VARCHAR(150) product_price DECIMAN (6, 2) product_img – VARCHAR(150)
Нам необходимо заполнить нашу базу данных.
Шаг 2 - Подключение к базе данных
У нас есть заполненная таблица базы данных. И теперь нам нужен доступ к ней. Создайте файл с именем database.php. В этом файле мы будет подключаться к базе данных.
$db_name = "sampledb";// Имя базы данных. $db_server = "localhost"; // хост (чаще всего localhost). $db_user = 'root';// имя пользователя $db_pass = '';// пароль пользователя $mysqli = new MySQLi($db_server, $db_user, $db_pass, $db_name) or die(mysqli_error());
Шаг 3 - Отображение записей из базы данных
Пока мы создали только базу данных, заполнили ее и подключили. Для того чтобы удалять записи, нам необходимо их вначале вывести на страницу. Сейчас мы этим и займемся. Сейчас откроем index.php и между тегами body вставим следующий код.
<div id=’container’> <div id=’listing’> <h2>Пример одновременного удаления</h2> <?php require ‘get_products.php’ ?> </div> </div>
Теперь создадим файл get_products.php и выполним следующие действия: 1) Подключить database.php 2) Создать запрос, который будет вытаскивать все данные их таблицы 3) Создать цикл, по которому записи вводятся в строку таблицы. 4) Создать флажок для каждой записи.
require 'database.php'; $query = "SELECT id, product_title, product_price, product_img FROM Products"; //Выполняем запрос и сохраняем в переменную $result. $result = $mysqli->query($query) or die(mysqli_error($mysqli));
Все наши данные загоняем в переменную. Это облегчит нам работу. После этого нам необходимо организовать цикл, который будет выводить все записи из таблицы.
Это остальной код файла get_products.php:
if ($result) {
// создаем новую форму и таблицу
echo "<form method='post' action='delete.php'>";
echo "<table cellspacing='0' cellpadding='15'>
<th width='15%'>Картинка</th>
<th width='55%'>Название</th>
<th width='15%'>Описание</th>
<th width='15%'>Удалить</th>
";
while ($row = $result->fetch_object()) {
$title = $row->product_title;
$price = $row->product_price;
$image = $row->product_img;
$id = $row->id;
//помещаем каждую строку в поле таблицы
echo "<tr>
<td><img src='$image' /></td>
<td>$title</td><td>$price</td>
<td><input type='checkbox' name='checkbox[]' id='checkbox[]' value=$id />
</tr>";
}
// после завершения цикла закрываем таблицу и форму.
echo "</table><p><input id='delete' type='submit' class='button' name='delete' value='Удалить'/></p></form>";
}
Это довольно большая часть кода, так что давайте подробнее его разберем.
Начнем с создания формы и таблицы. В цикле назначаем записям конкретные переменные, это поможет нам облегчить работу в дальнейшем.
Одна из главных частей этого сценария, где форма отсылает данные в файл delete.php. Это действие происходит после нажатия на кнопку Удалить.
Сейчас нам нужно создать стили для нашей формы, так как она выглядит не очень привлекательно. Создайте новый CSS файл с именем styles.css и подключите го к файлу index.php.
<link href="css/styles.css" rel="stylesheet" type="text/css" />
CSS файл будет содержать следующие стили:
body {
background-color: #e5e5e5;
font-family: Arial, Helvetica, sans-serif;
}
#listing {
width: 400px;
margin-top: 10px;
margin-right: auto;
margin-bottom: 50px;
margin-left: auto;
background-color: #FFFFFF;
padding: 20px;
border: 4px solid #999999;
-moz-border-radius: 9px; //позволяет создать нам закругленные углы
}
h1 {
font-size: 20px;
border-bottom-width: 2px;
border-bottom-style: solid;
border-bottom-color: #000033;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 5px;
margin-left: 0px;
padding: 0px 0px 5px 0px;
}
img {
height: 50px;
width: 50px;
border: 1px solid #000033;
}
th {
text-align: left;
font-size: 15px;
}
td {
font-size: 13px;
}
.even {
background-color: #CCCCCC;
}
.button {
padding: 10px; height: 50px;
width: 100%;
color: #FFFFFF;
background-color: #666666;
border: 1px solid #000000;
font-weight: bold;
cursor:pointer;
-moz-border-radius: 5px; //позволяет нам создать закругленные углы.
Чтобы сделать вывод записей более привлекательным, сделаем чередование записей, как полоски у зебры. Если Вы внимательно посмотрите CSS код, то увидите, что у нас есть класс .even. С помощью jQuery и класса .even мы сможем создать полоски зебры. Но сначала, нам необходимо скачать и подключить библиотеку jQuery.
<script type="text/javascript" src="js/ jquery-1.4.2.min.js"></script>
Для добавления эффекта зебры нам понадобиться написать несложный код.
<script>
$(document).ready(function() {
$("tr:nth-child(even)").addClass("even");>
});
</script>
Теперь можно посмотреть в браузере, что у нас получилось.
Шаг 4 - Удаление записей
Это самая трудная часть урока – удаление нескольких записей.
Наша цель заключается в том, чтобы выбранные записи были удаленны одним нажатием на кнопку.
Для начала нам необходимо в файле delete.php подключиться к базе данных. Для этого у нас есть файл database.php.
Теперь все готово для написания сценария удаления.
Вначале нам необходимо проверить, была ли нажата кнопка Удалить и были ли отмечены записи. Для этого создадим две переменные.
$checkbox – который показывает, были ли отмеченные данные. $countCheck – была ли нажата кнопка Удалить.
Для удаления мы будем использовать переменную $del_id которой присваивается значение переменной $checkbox[$i]. Другими словами это идентификатор записи в таблице базы данных, которая должна быть удалена.
После того как запись удаленны мы будет обновлена страница index.php.
Если Вы еще не создали файл delete.php, создайте и вставьте следующий код:
<?php
require 'database.php';
if($_POST['delete']) // определение кнопки {
$checkbox = $_POST['checkbox']; //выбранные файлы
$countCheck = count($_POST['checkbox']);
for($i=0;$i<$countCheck;$i++) {
$del_id = $checkbox[$i];
$sql = "DELETE FROM Products WHERE id = $del_id";
$result = $mysqli->query($sql) or die(mysqli_error($mysqli));
}
if($result) {
header('Location: index.php');//перенаправление на главную страницу
} else {
echo "Ошибка: ".mysql_error();
}
}
?>
Вот и все. Теперь можете сохранить все файлы и посмотреть, что получилось.
Последние уроки категории:
Сокращение PHP кода
Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...
Видимость переменных в PHP
В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.
Как читать Rss ленты?
Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.
Установка и настройка PHP+Apache
В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.
Как выбрать фреймворк
Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.




Комментарии:
i_x 29.11.2010 20:56:35
qwerty 15.03.2011 08:44:23
Антон 22.06.2011 06:39:48
Илья 29.04.2012 01:56:22