Редактируемая таблица php sql
MnogoBlog
как создать сайт на wordpress, настроить и оптимизировать wordpress
Создаём и редактируем таблицы MySQL с помощью PHP
Здравствуйте, сегодня будем создавать таблицу MySQL, заполнять её данными, научимся извлекать данные из таблицы, изменять их и удалять.
Для тестирования нижеуказанного кода можно использовать плагин – Hello (скачать данный плагин по этой ссылке) – в нем нижеуказанный код закомментирован (с помощью /* и */).
Можете установить и активировать плагин hello, далее зайти в админке в пункт “Плагины”, подпункт “Редактор”, выбрать плагин hello, разкомментировать нужный код и протестировать изменения с помощью phpMyAdmin.
Грамотно разработанный сайт залог успеха Вашего бизнеса в Сети. Чтобы создать сайт, который будет корректно представлять ваш бренд нужно обратиться к профессионалам своего дела –
здесь на базе платформы «1С-Битрикс» Вам помогут создать и осуществить продвижения сайта любой сложности.
1. Создаём таблицу MySQL:
1.1. Подключаемся к базе данных MySQL:
Вот мой тестовый сайт со следующими данными:
Вставляем данные в код и получим следующее:
1.2. Добавим новую таблицу в существующую базу данных MySQL:
Создадим новую таблицу “store_details”.
В таблице будет 4 столбца:
ID – этот столбец будет первичным ключом для таблицы
store_name
store_owner
store_country
Для столбца ID будет использоваться целочисленный тип данных (тип int), в то время как остальные столбцы будут установлены на строковый тип данных, а именно – varchar(255) – по желанию можете установить другие типы.
Vы добавили таблицу с названием store_details в нашу базу данных MySQL, теперь если мы зайдем в phpMyAdmin:
, то увидим, что появилась новая таблица store_details:
, давайте же приступим к её наполнению.
2. Вставляем данные в таблицу базы данных MySQL с помощью PHP:
2.1. Проверяем подключение к базе данных:
2.2. Вставляем данные в таблицу:
Добавим в таблицу store_details новую строку со следующими данными для столбцов:
MyShop (столбец store_name)
Kostya (столбец store_owner)
Russia (столбец store_country)
Первый столбец (“ID”) оставим без изменений – он будет заполняться автоматически.
Код, который мы будем использовать:
Каждый новый php запрос будет создавать новую строку в таблице.
Давайте запустим вышеуказанный код несколько раз и посмотрим, что получится.
Заходим в phpMyAdmin, выбираем нашу таблицу – store_details
Как видим у нас создалось несколько одинаковых строк.
3. Как извлечь данные из таблицы MySQL:
Теперь, когда мы уже знаем: как создать новую таблицу в MySQL и как вставить данные в таблицу – давайте попробуем извлечь данные из определенной строки. Для этого мы будем использовать значение столбца таблицы в качестве условия.
Наша таблица store_details выглядит следующим образом:
Предположим, что мы знаем название нашего магазина – “MyShop” и хотим вывести имя владельца магазина (столбец store_owner) и страну магазина (столбец store_country).
Мы будем использовать имя магазина (“MyShop”) в качестве условия для поиска по таблице – условие будет выглядеть так:
“найти строку со столбцом “store_name” в значении MyShop” и получить значения для других столбцов в этой строке”.
3.1. Проверяем подключение к базе данных:
3.2. Извлекаем значения из таблицы MySQL
А далее с помощью конструкции echo мы вывели их значения на экран.
4. Изменяем значения столбцов в конкретной строке таблицы:
4.1. Проверяем подключение к базе данных:
4.2. Меняем значение столбцов в конкретной строке таблицы:
Для напримера, давайте для первой строки поменяем собственника магазина (store_owner) с Kostya на Mnogoblog.
5. Удаляем запись таблицы:
5.1. Проверяем подключение к базе данных:
5.2. Удаляем запись таблицы:
В данном примере, обработчик удалит запись с идентификатором «id», равным “2”.
На этом всё! Красивых и успешных Вам сайтов!
UPDATE. Редактирование записей в таблице базы данных MySQL
Команда UPDATE
Часто возникает необходимость изменения информации, хранящейся в базе данных. С помощью команды 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% для всех книг под авторством Николая Гоголя, а также в название книги добавим слово «(Акция)».
Запрос на обновление данных, в этом случае, будет выглядеть так:
В результате получим следующие изменения.
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
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)
В результате запроса выше получим одинаковую цену и название для всех книг в таблице.
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)
Перед созданием формы мы обратимся к нашей таблице books и выведем данные, которые в ней хранятся, просто для того чтобы видеть, что содержит таблица и не редактировать ее вслепую.
PHP: работа с БД MySQL
Базы данных используются для удобного хранения информации, а также для её структурирования. Они являются очень важной вещью для создания динамических веб-сайтов.
Их используют для:
В этой статье мы научимся вставлять, изменять, получать и защищать данные из БД MySQL, используя PHP.
Основная разница в том, что PDO может работать с огромным количеством баз данных: MySQL, Cubrid, Oracle, SQlite и так далее. А mysqli может работать только с MySQL.
В своей статье я покажу, как работать с PDO.
Примеры показывать буду на локальном сервере ( xampp ).
Создание БД и таблиц
Создать БД можно из панели управления хостингом, если есть такая возможность, а если нет, то из phpMyAdmin. Сравнение ставим utf8_general_ci.
Теперь мы имеем готовую БД и таблицу для работы с ней.
Подключение к БД с помощью PHP
Создаём файл index.php и прописываем:
Мы создали подключение к БД. Подключение от PDO не нужно закрывать, оно само закрывается, когда скрипт завершает свою работу.
Выборка данных
Здесь я сделаю небольшое отступление. Выбирать данные можно:
PDO::FETCH_ASSOC — возвращает массив с названиями столбцов в виде ключей.
PDO::FETCH_OBJ — возвращает анонимный объект со свойствами, соответствующими именам столбцов.
Fetch() — каждый раз извлекает следующую строку.
Продолжаем скрипт:
В данном случае код выведет логин всех, кто есть в таблице.
В данном случае код выведет также логин всех, кто есть в таблице.
Выборка данных по параметру + защита
Мы можем выбирать определённые данные из таблицы. Например, мы можем выбрать все записи, где pass = 123, и тому подобные.
Вот первый пример выборки по логину + защита:
Можно указать несколько вопросительных знаков, а в execute перечислить замены для них через запятую.
Вот второй пример выборки по логину + защита:
Второй способ использовать предпочтительнее, так как читаемость и понятность кода более понятна, чем в первом примере, но использовать можно два способа.
Вставка данных по параметру + защита
Теперь можем проверить таблицу. Видим, что всё сработало правильно.
Обновление данных по параметру + защита
Теперь можем проверить таблицу. Видим, что всё сработало правильно.
Заключение
Как видите, работать с PDO довольно легко. Теперь вы сами можете создавать веб-сайты с базами данных.
Надеюсь, что вам понравилась статья, и вы получили новые знания.
Работа по выводу и редактированию таблицы.
Вопросы:
1) Как мне сделать так, чтоб вместе с каждой строкой таблицы выводилось еще две ячейки, которые содержали кнопки или ссылки в виде картинок, после нажатие на которые производилась редактрирование или удаление ДАННОЙ строки из таблицы.
Либо другой вариант, чтоб я CHEKBOXом помечал строку, потом нажимал на кнопку с нужной командой.
2) После добавления данных хотелось бы чтоб выводилась НАДПИСЬ «Данные добавленны», а потом вновь открывалась страница с выведенной таблицей! Возможно ли это.
P.S. PHP только осваиваю, так что если можно, подробнее объясните плиз!
0. учимся форматировать код специальными тегами.
1. добавить в свое echo(»$tablerows[1] $tablerows[2] $tablerows[3] «); еще несколько в которых будут чекбоксы, ссылки в виде картинок и что там еще тебе надо. В ссылке передавать primary_key строки. Ссылка должна вести на скрипт, который удаляет строку этим primary_key. Или редактирует.
2. да.
не-не-не.
Вы чего?
Никогда! Урл не должен позволять удалять или редактировать содержимое. Изменение данных только через POST.
Т.е. ссылка может вести на скрипт, который выведет форму для удаления/редактирования. Но не более того.
Ну, я в удаление без подтверждения просто не верю. То есть по любому ссылка должна вести на «вы действительно хотите удалить эту запись (Да/Ага/Мечтаю)». Даже не посмотрел что получится, если переписывать бездумно. Да, будет весело. если придет гугл-бот
PHP и MySQL
Запросы MySQL с примерами: часть 2.
Введение
В первой части, основы MySQL и PHP, мы научились подключаться серверу MySQL, выбирать базу данных для работы, узнали PHP-функцию отправки запросов серверу MySQL, узнали два простейших запроса (создание и удаление таблицы), ну и узнали как закрывать соединение.
Теперь мы будем более глубоко изучать запросы MySQL. Итак, приступим!
Создание таблицы — CREATE TABLE
Сейчас у нас пустая база данных, в ней нет таблиц. Поэтому сначала создадим таблицу. Мы уже знаем как это делать из первой части.
Вот код скрипта, который создаст нужную нам табличку:
В нашей таблице только два поля: логин и пароль. Пока что нам больше не нужно, не будем усложнять процесс.
Итак, таблица создана.
Добавление строк (записей) в таблицу — INSERT
Добавить новую строку в таблицу можно при помощи SQL команды insert. Вот пример:
Синтаксис запроса выглядит так:
INSERT INTO имя_таблицы (столбец1, столбец2) VALUE (‘х1’, ‘х2’)
Кавычки во вторых скобках обязательны.
На месте значений могут быть переменные. Вот пример:
Конечно, в этом примере мало смысла. Возможно, новичкам будет полезно услышать, что так в базу данных записываются логины и пароли, которые сообщают пользователи при регистрации. Эти данные хранятся в переменных, потом, после проверки, записываются в базу.
Существует быстрый способ вставки нескольких строк одним запросом INSERT :
Как видим, перечисляемые данные просто отделены запятыми.
Итак, при помощи команды INSERT мы научились добавлять записи в таблицу. Идём дальше.
Просмотр таблицы: команда SELECT
Теперь у нас есть таблица users, в которой есть строки. Прошлый скрипт можно запустить несколько раз, и каждый раз он будет добавлять строку в таблицу. Теперь мы можем не знать, сколько у нас строк в таблице. А хочется знать что у нас в ней записано.
Запросим все данные из таблицы users:
Функция mysqli_query() вернула нам — мы его помещаем в переменную и в дальнейшем будем работать с ним при помощи других функций PHP.
Число записей в запросе
Давайте определим сколько строк в нашем запросе? Я вот запустил скрипт добавления записи в таблицу сам не помню сколько раз и теперь не знаю сколько строк в моей таблице.
Если нам нужно узнать число записей в таблице, то приведённый способ не самый подходящий. Тут мы узнали число записей, найденных в запросе, но число записей в таблице ищется по другому.
Число записей в таблице SELECT COUNT(*)
Обратите внимание, тут мы использовали новую функцию PHP mysqli_fetch_row() для получения данных. Эта функция возвращает ряд результата запроса в форме простого массива, в нашем случае в ряду одно поле и оно имеет индес 0.
Просмотр результата запроса в цикле
После выполнения SQL-запроса с командой SELECT и получения идентификатора результата запроса, PHP создаёт в наборе записей результата внутренний указатель. Этот указатель автоматически перемещается на следующую запись, после обращения к текущей записи. Благодаря этому механизму набор результа запроса SELECT очень удобно просматривать в цикле.
Итак, запрашиваем все данные из таблицы users ( SELECT * FROM users ).
Функция mysqli_fetch_row() возвращает простой массив. В каждой итерации цикла мы получим массив с строкой из таблицы, доступ к полям которой мы можем получить указав числовой индекс.
Также есть функции mysqli_fetch_array() — возвращает любой тип массива, и mysqli_fetch_object() — возвращает объект.
Запрос SELECT DISTINCT — уникальные значения полей
Давайте создадим новую таблицу:
Итак, мы имеем новую, более сложную таблицу с уникальными записями. Сейчас давайте посмотрим, сколько у нас имён в базе данных.
SQL-запрос » SELECT DISTINCT name FROM users » вернул результат со всеми уникальными именами в нашей таблице. Каждое уникальное имя в новой строке результата запроса.
Сортировка результата — ORDER BY
Добавив в SQL-запрос команду ORDER BY мы сортируем результат запроса по возрастанию (цифры и буквы по алфавиту). Вот пример, в котором можно сравнить обычный запрос и отсортированный по возрасту (поле age).
Можете заменить поле age в команде ORDER BY на поле name и посмотреть результат.
Соответствие условию — WHERE
Добавив в SQL-запрос команду WHERE мы запросим только те записи, которые соответствуют условию. Например, сделаем запрос на людей младше 30 лет.
Для этого используем SQL-запрос » SELECT * FROM users WHERE age «.
Также мы можем сразу отсортировать результат по возрастанию age:
» SELECT * FROM users WHERE age «.
Если мы сделаем запрос » SELECT name FROM users WHERE age «, то в результате нам вернут только значения поля «name», но они также будут отсортированы по age.
Мы можем запросить значения двух полей: » SELECT name, age FROM users WHERE age «.
Теперь запросим все пользователей, с именем «Max».
SELECT name FROM users WHERE name!=’Max’
На этом с запросом WHERE всё.
Ограничение записей — LIMIT
Добавив в SQL-запрос команду LIMIT мы ограничим размер результата.
Запрос, который выводит первые три записи: » SELECT * FROM users LIMIT 3 «. Давайте посмотрим как он работает:
Также тут мы использовали запрос: » SELECT * FROM users LIMIT 3, 3 «. Вторая тройка указывает смещение в результате запроса.
Соответствие шаблону — LIKE
Вот пример запроса, который вернёт все записи с именами, начинающимися на букву S.
SELECT * FROM users WHERE name LIKE ‘S%’
Вот пример запроса, который вернёт все записи с фамилиями, заканчивающимися на букву s.
SELECT * FROM users WHERE name LIKE ‘%s’
Соответствие условию — IN
Этот запрос с использованием команды IN вернёт только те строки, которые строго соответствую условию.
Например, нас интересуют люди с возрастом 21, 26 и 33 года.
SELECT * FROM users WHERE age IN (21,26,33)
Максимальное и минимальное значение в столбце
Выбирает максимальное значение age в таблице users.
SELECT max(age) FROM users
Следующий запрос выбирает данные из таблицы users по полям name и age где age принимает минимальное значение.
SELECT name, min(age) FROM users
Обновление записи — UPDATE
Давайте Max Lopes установим возраст 15 лет. Это делается запросом MySQL:
UPDATE users SET age=’15’ WHERE name=’Max’ AND surname=’Lopes’
Обратите внимание на новую команду AND (and — по английски значит «и») в запросе. Если мы не уточним фамилию, то возраст 15 лет будет установлен всем Максам в таблице.
Одним запросом можно обновить два и более полей в одной строке. Делается это следующим образом:
UPDATE users SET age = ’18’, surname = ‘Coocker’ WHERE
В нашей таблице нет поля id, так что этот запрос не сработает на ней. Но это поле, содержащее уникальные номера строк, мы обязательно выучим.
Удалить запись — DELETE
Запрос к базе данных MySQL для удаления записи:
DELETE FROM users WHERE
Опять же, в нашей таблице нет поля id. Но мы можем удалить из неё всех людей, младше 18 лет.
DELETE FROM users WHERE age
Удалить таблицу — DROP TABLE
Запрос к базе данных MySQL который удаляет целиком таблицу users:
Иногда может потребоваться удалить столбец из таблицы, давайте например удалим из users столбец age:
ALTER TABLE users DROP age
Этот запрос MySQL удалил столбец окончательно и безвозвратно.
Иногда может потребоваться добавить столбец в существующую таблицу, давайте например снова добавим в таблицу users столбец age:
ALTER TABLE users ADD age TINYINT UNSIGNED
Иногда может потребоваться переименовать столбец, например столбец age переименовать в vozrast. Делаем это так:
ALTER TABLE users CHANGE age vozrast TINYINT UNSIGNED
Иногда может потребоваться переименовать таблицу:
RENAME TABLE users TO peoples
Удаление базы данных — DROP DATABASE
Этот запрос может удалить базу данных с имененм tester:
DROP DATABASE tester
У меня на денвере этот запрос работает, но на хостинге может и не сработать, если у пользователя базы данных нет прав на выполнение удаления.
Создание базы данных — CREATE DATABASE
Этот запрос создаёт базу данных с имененм tester:
CREATE DATABASE tester
У меня на денвере этот запрос работает, но на хостинге может и не сработать, если у пользователя базы данных нет прав на выполнение удаления.
Итоги
Итак, в этой части мы ознакомились с запросами к MySQL. Многие из рассмотренных нами запросов нам не часто пригодятся в процессе работы, но знать их нужно, так как они точно пригодятся в процессе разработки скриптов.
Некоторые запросы обычно делают только из phpMyAdmin (создание и удаление баз данных например).
В работе сайтов обычно нужно добавить запись в таблицу, редактировать запись или удалить запись из таблицы.
Следующим шагом будет изучение типов данных в MySQL.