Одновременное удаление записей

Вы, возможно, захотите удалить одновременно несколько записей. Этот урок покажет Вам, как это сделать. Чтобы это сделать, нам понадобится 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();
					}
				}
			    ?>
				

Вот и все. Теперь можете сохранить все файлы и посмотреть, что получилось.

Просмотров: 4196      Опубликовал: Евгений Фединчик      Дата: 07.04.2010 16:00:59
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Сокращение PHP кода

    Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...

    Видимость переменных в PHP

    В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.

    Как читать Rss ленты?

    Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.

    Установка и настройка PHP+Apache

    В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.

    Как выбрать фреймворк

    Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.

    Комментарии:

    • i_x 29.11.2010 20:56:35
      Спасибо, помогла инфа об удалении нескольких записей из базы, сам никак не мог допереть
      Ответить
    • Антон 22.06.2011 06:39:48
      Разобрался тоже... спасибо!
      Ответить
    • Илья 29.04.2012 01:56:22
      Отличная статья для начинающих. Спасибо!
      Ответить
    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa