METANIT.COM

PHP5 MySQL Удалить данные

MySQL Удалить данные из таблицы, используя mysqli и PDO

Заявление DELETE используется для удаления записей из таблицы:

Обратите внимание на предложение WHERE в синтаксисе удаления: Предложение WHERE указывает, какие записи или запись должна быть удалены. Если исключить условие WHERE, то все записи будут удалены!

Чтобы узнать больше о SQL, пожалуйста, посетите наш Учебник SQL.

Давайте посмотрим на таблицу «MyGuests» :

id firstname lastname email reg_date
1 Федор Петров fed@example.ru 2017-10-22 14:26:15
2 Петр Громыхалов petr@example.ru 2017-10-23 10:22:30
3 Лева Быков leva@example.ru 2017-10-26 10:48:23

В следующих примерах, нужно удалить запись с id=3 в таблице «MyGuests» :

Пример MySQLi — объектно-ориентированный

// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDB»; // база данных

// Создание соединения
$conn = new mysqli($servername, $username, $password, $dbname);

// Проверка соединения
if ($conn->connect_error) die(«Ошибка подключения: » . $conn->connect_error);
>

// Удаления записи
$sql = «DELETE FROM MyGuests WHERE ($conn->query($sql) === TRUE) echo «Запись успешно удалена»;
> else echo «Ошибка удаления записи: » . $conn->error;
>

// Закрыть подключение
$conn->close();
?>

Пример MySQLi — процессуальный

// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDB»; // база данных

// Создание соединения
$conn = mysqli_connect($servername, $username, $password, $dbname);

// Проверка соединения
if (!$conn) die(«Ошибка подключения: » . mysqli_connect_error());
>

// Удаления записи
$sql = «DELETE FROM MyGuests WHERE (mysqli_query($conn, $sql)) echo «Запись успешно удалена»;
> else echo «Ошибка удаления записи: » . mysqli_error($conn);
>

// Закрыть подключение
mysqli_close($conn);
?>

Пример PDO

// Подключение к MySQL
$servername = «localhost»; // локалхост
$username = «root»; // имя пользователя
$password = «»; // пароль если существует
$dbname = «myDBPDO»; // база данных

// Создание соединения и исключения
try $conn = new PDO(«mysql:host=$servername;dbname=$dbname», $username, $password);
// Установить режим ошибки PDO в исключение
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// Удаления записи
$sql = «DELETE FROM MyGuests WHERE // Используйте exec (), поскольку результаты не возвращаются
$conn->exec($sql);
echo «Запись успешно удалена»;
>
catch(PDOException $e)
echo $sql . «
» . $e->getMessage();
>

// Закрыть подключение
$conn = null;
?>

После удаления записи таблица будет выглядеть следующим образом:

id firstname lastname email reg_date
1 Федор Петров fed@example.ru 2017-10-22 14:26:15
2 Петр Громыхалов petr@example.ru 2017-10-23 10:22:30

Источник

Php mysql удаление данных

Для удаления данных применяется sql-команда DELETE :

DELETE FROM Таблица WHERE столбец = значение

Для удаления данных возьмем использованную в прошлых темах таблицу Users со следующим определением:

CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER)

Объектно-ориентированный стиль

Вначале определим для вывода всех объектов из БД скрипт index.php :

     

Список пользователей

connect_error)< die("Ошибка: " . $conn->connect_error); > $sql = "SELECT * FROM Users"; if($result = $conn->query($sql))< echo ""; foreach($result as $row)< echo ""; echo ""; echo ""; echo ""; echo ""; > echo "
ИмяВозраст
" . $row["name"] . "" . $row["age"] . "
"; $result->free(); > else< echo "Ошибка: " . $conn->error; > $conn->close(); ?>

В таблицы для каждой строки определена форма, которая посылает данные в POST-запросе скрипту delete.php . Чтобы передать в delete.php идентификатор удаляемого объекта, на форме определено скрытое поле для хранения id объекта.

Обратите внимание, что в данном случае применяется не ссылка для удаления типа

которая оправляет данные в GET-запросе, а именно форма, которая отправляет данные в POST-запросе. Почему? Подобные GET-запросы потенциально небезопасны. Допустим, нам пришло электронное письмо, в которое была внедрена картинка посредством тега:

В итоге при открытии письма 1-я запись в таблице может быть удалена. Уязвимость касается не только писем, но может проявляться и в других местах, но смысл один — GET-запрос к скрипту, который удаляет данные, несет потенциальную уязвимость.

Теперь определим сам скрипт delete.php , который будет выполнять удаление:

connect_error)< die("Ошибка: " . $conn->connect_error); > $userid = $conn->real_escape_string($_POST["id"]); $sql = "DELETE FROM Users WHERE "; if($conn->query($sql)) < header("Location: index.php"); >else< echo "Ошибка: " . $conn->error; > $conn->close(); > ?>

В данном случае скрипт получает через POST-запрос значение id и по этому идентификатору выполняет удаление. После чего происходит переадресация на скрипт index.php .

Удаление из MySQL в PHP PDO

Процедурный стиль

     

Список пользователей

$sql = "SELECT * FROM Users"; if($result = mysqli_query($conn, $sql))< echo ""; foreach($result as $row)< echo ""; echo ""; echo ""; echo ""; echo ""; > echo "
ИмяВозраст
" . $row["name"] . "" . $row["age"] . "
"; mysqli_free_result($result); > else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); ?>
 $userid = mysqli_real_escape_string($conn, $_POST["id"]); $sql = "DELETE FROM Users WHERE "; if(mysqli_query($conn, $sql)) < header("Location: index.php"); >else < echo "Ошибка: " . mysqli_error($conn); >mysqli_close($conn); > ?>

Источник

Редактирование данных в MySql с помощью PHP (админ-панель)

Счетчик PR-CY.Rank

Если ты полностью справился с предыдущим уроком, то данный урок можно пропустить 🙂 Здесь мы с вами пошагово сделаем следующее:

  • Создадим таблицу MySql
  • Выведем из таблицы MySql данные
  • Сделаем форму для редактирования и удаления данных из таблицы MySql

Создание таблицы

Давайте создадим в нашей БД таблицу products со следующими полями: ID, Name, Price. Поле Name у нас будет иметь тип TEXT, остальные два — INT. Если вам лень в PhpMyAdmin создавать такую табличку руками, то можете просто в нем выполнить вот этот SQL-код:

CREATE TABLE IF NOT EXISTS `products` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Name` text NOT NULL, `Price` int(11) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Теперь давайте заполним нашу таблицу тестовыми данными. Для наглядности мы добавим 3 записи:

Mysql-таблица с товарами

Заполнить таблицу можно либо ручками через PhpMyAdmin, либо опять же вот таким простым SQL-запросом:

INSERT INTO `products` (`ID`, `Name`, `Price`) VALUES (1, 'Хлеб', 35), (2, 'Йогурт', 27), (3, 'Пиво Балтика #7', 50);

Вывод записей

Следующим нашим шагом будет обычный вывод этих данных из MySql на web-страничку.

Создадим новую страницу, к примеру «product_list.php» с установленным соединением с БД:

Теперь выведем все записи из таблицы. Для этого после подключения к БД (перед закрывающимся тегом ) вставим следующий код:

 "; > ?>
Идентификатор Наименование Цена

Если вы увидели на экране табличку с вашими товарами, то ПОЗДРАВЛЯЮ, пока что у вас все получается как надо! Возможно только для этого вы сюда и пришли. Этот вариант уже можно разместить на сайте, а добавлять и редактировать товары четез PhpMyAdmin. Все изменения будут автоматически отображаться на вашей страничке, доступной пользователям. Конечно вам придется для более касивого отображения таблички поколдовать со стилями css, но это уже другая тема 🙂 Итак, мы поедем дальше и сделаем редактирование и удаление этих товаров.

Редактирование и удаление записей

Давайте определимся, что нам надо уметь делать? Первое — удалять записи, воторое — редактировать записи. Ну а третье (вставлять новые записи) — мы уже сделали в прошлом уроке.

Итак, для того, чтобы мы могли удалить запись, нам надо в строке браузера передать в какой-либо переменной ID этой записи. Иными словами, нам надо, чтобы строка браузера у нас выглядела примерно так:

Переменная в строке браузера

На скриншоте выше мы видим переменную del_id в строке браузера, которая равна 1. Значение этой переменной можно прочитать средствами PHP и удалить из MySql-таблицы запись под номером 1 (ID = 1). Давайте сделаем это. Для начала передадим переменную, которая укажет, какую запись надо удалить. Для этого рядом с каждой записью добавим ссылку на удаление, в которой и передадим эту переменную. Итак, наша табличка с выведенными данными изменится следующим образом:

Теперь, если вы будете переходить по ссылкам «Удалить», то увидите, что значения переменной в строке браузера будет меняться в зависимости от выбранного продукта. Теперь давайте перед самым выводом товаров проверим, не передана ли переменная del_id, и если она передана, то удалим запись. Для этого после подключения к БД почти в начало файла вставим следующий код:

"); if ($sql) < echo "

Товар удален.

"; > else < echo '

Произошла ошибка: ' . mysqli_error($link) . '

'; > > ?>

Редактирование записей

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

  • мы также как и для удаления передадим переменную red_id
  • достанем из БД запись с таким номером, чему равна red_id
  • подставим полученные из БД данные в форму редактирования (для этого мы воспользуемся сокразениями php для вывода результатов и для выполнения условий)
  • сохраним эти данные в БД

Сокращенная запись echo с условием

Следующие два примера кода делают одно и то же.

Полный листинг кода

      //Если переменная Name передана if (isset($_POST["Name"])) < //Если это запрос на обновление, то обновляем if (isset($_GET['red_id'])) < $sql = mysqli_query($link, "UPDATE `products` SET `Name` = '',`Price` = '' WHERE `ID`="); > else < //Иначе вставляем данные, подставляя их в запрос $sql = mysqli_query($link, "INSERT INTO `products` (`Name`, `Price`) VALUES ('', '')"); > //Если вставка прошла успешно if ($sql) < echo '

Успешно!

'; > else < echo '

Произошла ошибка: ' . mysqli_error($link) . '

'; > > if (isset($_GET['del_id'])) < //проверяем, есть ли переменная //удаляем строку из таблицы $sql = mysqli_query($link, "DELETE FROM `products` WHERE `ID` = "); if ($sql) < echo "

Товар удален.

"; > else < echo '

Произошла ошибка: ' . mysqli_error($link) . '

'; > > //Если передана переменная red_id, то надо обновлять данные. Для начала достанем их из БД if (isset($_GET['red_id'])) < $sql = mysqli_query($link, "SELECT `ID`, `Name`, `Price` FROM `products` WHERE `ID`="); $product = mysqli_fetch_array($sql); > ?>
Наименование: ">
Цена: "> руб.
' . " " . "" . "" . ''; > ?>
Идентификатор Наименование Цена Удаление Редактирование
" . " " . "'>Удалить'>Изменить

Добавить новый товар

Ну вот, друзья, мы и научились доставать данные из БД MySql или MariaDB, отображать их на странице, удалять их прямо со страницы и, конечно же, редактировать 😉

Кстати, если вы еще не нашли себе хостинг для сайта (место в сети интернет), или не выбрали домен, то рекомендую почитать статью «Как разместить сайт в сети Интернет», в ней много всякой полезной информации.

Удачи в изучении связки PHP и MySql. Пишите комментарии, ставьте лайки «Мне нравится»!

Крутов Герман

Понравилась или помогла статья? Самое лучшее, что ты можешь сделать — это поделиться ею в любой из своих соцсетей (даже если ты поделишься в твиттере или google+, которыми ты не пользуешься — это очень поможет развитию моего блога). Спасибо! А если ты еще и оставишь любой комментарий снизу в обсуждениях, то это будет двойное СПАСИБО!

Ссылка на статью на всякий случай:

PersonКрутов Герман © 2009-2023 Emailkrutovgerman2007@ya.ru VK SocialЯ ВКонтате

Источник

Удаление записей в MySQL (DELETE)

В этом уроке вы узнаете, как с помощью PHP сортировать и отображать данные из таблицы MySQL в порядке возрастания или убывания.

Удаление данных таблицы БД MySQL

Подобно тому, как вы вставляете записи в таблицу с помощью оператора INSERT , вы также можете удалять записи из таблицы с помощью оператора SQL DELETE . Обычно он используется вместе с условием WHERE для удаления только тех записей, которые соответствуют определенным критериям или условию.

Базовый синтаксис оператора DELETE может быть задан следующим образом:

Давайте сделаем SQL-запрос, используя оператор DELETE и условие WHERE , после чего мы выполним этот запрос, передав его функции mysqli_query() для удаления записей таблицы. Воспользуемся таблицей persons базы данных demo:

Выбор данных из таблиц базы данных MySQL

Код PHP в следующем примере удалит записи тех людей из таблицы persons, у которых first_name равно John:

Пример

 // запрос для удаления записи $sql = "DELETE FROM persons WHERE first_name='John'"; if (mysqli_query($conn, $sql)) < echo "Запись успешно удалена"; >else < echo "Ошибка при удалении записи: " . mysqli_error($conn); >mysqli_close($conn); ?>
 // запрос для удаления записи $sql = "DELETE FROM persons WHERE first_name='John'"; if ($conn->query($sql) === TRUE) < echo "Запись успешно удалена"; >else < echo "Ошибка при удалении записи: " . $conn->error; > $conn->close(); ?>
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // sql для удаления записи $sql = "DELETE FROM persons WHERE first_name='John'"; // используйте exec(), потому что результаты не возвращаются $conn->exec($sql); echo "Запись успешно удалена"; > catch(PDOException $e) < echo $sql . "
" . $e->getMessage(); > $conn = null; ?>

После удаления таблица persons будет выглядеть так:

Выбор данных из таблиц базы данных MySQL

Примечание: Обратите внимание на предложение WHERE в синтаксисе DELETE: предложение WHERE указывает, какую запись или записи следует удалить. Если вы опустите предложение WHERE, все записи будут удалены!

Источник

Читайте также:  Javascript forms submit post
Оцените статью