Админ-панель

UPDATE. Редактирование записей в таблице базы данных MySQL

Часто возникает необходимость изменения информации, хранящейся в базе данных. С помощью команды UPDATE вы сможете обновлять данные одной или нескольких колонок в каждой записи таблицы.

Синтаксис запроса на обновление данных.

Для примера заполним таблицу books для хранения книг из условной базы данных Bookstore, которую мы создали в одном из предыдущех постов.

Сначала выберем базу данных, для которой будем выполнять запросы.

Посмотрим какие данные сейчас хранятся в колонках id, title, author, price, discount, amount таблицы books для первых 5 записей.

mysql> SELECT id, title, author, price, discount, amount FROM books LIMIT 5;
+—-+—————————+——————-+———+———-+———+
| id | title | author | price | discount | amount |
+—-+—————————+——————-+———+———-+———+
| 1 | Дубровский | Александр Пушкин | 230.00 | 0 | 4 |
| 2 | Нос | Николай Гоголь | 255.20 | 0 | 7 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 240.50 | 0 | 10 |
| 4 | Мёртвые души | Николай Гоголь | 173.00 | 0 | 3 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 | 0 | 3 |
+—-+—————————+——————-+———+———-+———+
5 rows in set (0.00 sec)

Обновим цену, процент скидки и уменьшим количество на 2 для книги с идентификатором 3.

Теперь проверим как обновились данные.

mysql> UPDATE books
-> SET price=263.00, discount=10, amount=amount-2
-> WHERE id=3;
Query OK, 1 rows affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT id, title, author, price, discount, amount FROM books LIMIT 5;
+—-+—————————+——————-+———+———-+———+
| id | title | author | price | discount | amount |
+—-+—————————+——————-+———+———-+———+
| 1 | Дубровский | Александр Пушкин | 230.00 | 0 | 4 |
| 2 | Нос | Николай Гоголь | 255.20 | 0 | 7 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 | 10 | 8 |
| 4 | Мёртвые души | Николай Гоголь | 173.00 | 0 | 3 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 | 0 | 3 |
+—-+—————————+——————-+———+———-+———+
5 rows in set (0.00 sec)

Обновление данных для нескольких записей в MySQL

Используя команду WHERE можно задавать сразу несколько записей для обновления данных.

Попробуем добавить скидку в 5% для всех книг под авторством Николая Гоголя, а также в название книги добавим слово «(Акция)».

Запрос на обновление данных, в этом случае, будет выглядеть так:

В запросе используется функция CONCAT() , которая прибавляет к текущему значению поля title строку «(Акция)».

В результате получим следующие изменения.

mysql> UPDATE books
-> SET discount=5, title=CONCAT(title, » (Акция)» )
-> WHERE author= «Николай Гоголь» ;
Query OK, 2 rows affected (0.00 sec)
Rows matched: 2 Changed: 2 Warnings: 0

Читайте также:  Java rice powder bourjois

mysql> SELECT id, title, author, price, discount, amount FROM books LIMIT 5;
+—-+—————————+———————+———+———-+———+
| id | title | author | price | discount | amount |
+—-+—————————+———————+———+———-+———+
| 1 | Дубровский | Александр Пушкин | 230.00 | 0 | 4 |
| 2 | Нос (Акция) | Николай Гоголь | 255.20 | 5 | 7 |
| 3 | Мастер и Маргарита | Михаил Булгаков | 263.00 | 10 | 8 |
| 4 | Мёртвые души (Акция) | Николай Гоголь | 173.00 | 5 | 3 |
| 5 | Преступление и наказание | Фёдор Достоевский | 245.00 | 0 | 3 |
+———+—————————+———————+———+———-+———+
5 rows in set (0.00 sec)

Будьте предельно внимательны при обновлении данных в таблицах, так как если вы вдруг забудете задать условие обновления и не напишите команду WHERE , то указанное в запросе обновление будет применено ко всем строкам в таблице!

Пример того, что может получится если не указать команду WHERE .

В результате запроса выше получим одинаковую цену и название для всех книг в таблице.

mysql> UPDATE books SET price=103.90, title= «Барышня-крестьянка» ;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5 Changed: 5 Warnings: 0

mysql> SELECT id, title, author, price, discount FROM books LIMIT 5;
+—-+————————+———————+———+———-+
| id | title | author | price | discount |
+—-+————————+———————+———+———-+
| 1 | Барышня-крестьянка | Александр Пушкин | 103.90 | 0 |
| 2 | Барышня-крестьянка | Николай Гоголь | 103.90 | 5 |
| 3 | Барышня-крестьянка | Михаил Булгаков | 103.90 | 10 |
| 4 | Барышня-крестьянка | Николай Гоголь | 103.90 | 5 |
| 5 | Барышня-крестьянка | Фёдор Достоевский | 103.90 | 0 |
+—-+————————+———————+———+———-+
5 rows in set (0.00 sec)

Как обновить записи в таблице базы данных MySQL с помощью PHP (PDO)

Для обновления большого количества данных, гораздо удобнее будет воспользоваться HTML-формой, поля которой будут соответствовать полям таблицы из базы данных. Форму разместим в файле index.php .

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

Источник

Редактирование данных в 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-страничку.

Читайте также:  jQuery AJAX form submit

Создадим новую страницу, к примеру «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Я ВКонтате

Источник

Оцените статью