Выводим данные из БД MySQL с помощью SQL-запросов
Здравствуйте, уважаемый посетитель!
В предыдущих статьях мы рассмотрели возможность записи данных в БД MySQL тремя разными способами:
- в веб-интефейсе phpMyAdmin, записывая в ручную информацию в каждую ячейку таблицы;
- с помощью подготовленных SQL-запросов;
- программно, используя функции модуля MySQLi PHP, составив для этого соответствующий скрипт.
А, теперь выполним обратные действия, посмотрим, как можно вывести данные из таблицы MySQL с помощью SQL-запросов.
Задачей данного материала является знакомство с основными моментами при работе с базой данных MySQL для того, чтобы в дальнейшем можно было практически использовать возможности этой информационной системы для добавления функциональности нашему сайту.
Поэтому, здесь мы более подробно остановимся всего лишь на двух, наиболее часто встречающихся в веб-прогаммировании вариантах извлечения данных, а именно: с начала выполним запрос выборки одиночной уникальной строки по заданному условию, а затем получим набор нескольких строк и отсортируем их по одному из полей.
Как ранее отмечалось, работа с базой данных MySQL в phpMyAdmin на хостинге, практически, ничем не отличается от действий на локальном веб-сервере, за исключением порядка входа в веб-приложение с соответствующим аккаунтом.
В связи с чем, вывод данных из БД MySQL здесь будет рассматриваться только для варианта с локальным веб-сервером "Denwer", который используется в нашем случае при создании сайта. Для хостинга будет все аналогично.
Содержание
- Выборка одиночной уникальной строки с заданным условием
- Получение набора нескольких строк с сортировкой по заданному полю
Выборка одиночной уникальной строки с заданным условием
А предыдущих статьях мы сформировали в БД локального веб-сервера "avtobezugona" таблицу "url" и наполнили ее данными (другие ранее созданные таблицы "url_sql" и "url_php" использовались только для демонстрации возможности создания строк с помощью SQL-запросов и через PHP, поэтому в дальнейшем использоваться не будут).
Для начала снова вернемся к полученной таблице "url", предварительно открыв веб-приложение phpMyAdmin.

Рис.1
А теперь составим SQL-запрос, например, выборку строки, в которой в поле "url" значение будет соответствовать "poluchity-skidku" (на рис.1 эта строка имеет идентификатор "4").
Как отмечалось ранее, в языке SQL имеется большое количества различных запросов предназначенных под разные конкретные задачи. Перечень возможных команд SQL можно посмотреть, например, в одном из разделов такого информационного ресурса, как Справочник по MySQL.
скриншот 10
Для данной задачи будем использовать команду "SELECT", которая специально предназначена для поиска и выбора записей из таблиц.
Синтаксис написания такого SQL-запроса, в наиболее частом использовании, следующий:
- сама команда SELECT;
- имена полей, которые необходимо выбрать (если вместо них указан знак *, то будут выбраны все поля найденных строк);
- слово FROM;
- имя таблицы без кавычек или с использованием апострофа;
- слово WHERE (если после имени таблицы слово WHERE отсутствует вместе с условием запроса, то будут выбраны все записи таблицы);
- условие для выбора записей.
При этом следует отметить, что применение апострофа в именах таблиц и полей предпочтительней, чем без него, так как позволяет использовать различные зарезервированные в MySQL слова и таким образом избежать разного рода проблем при составлении запросов.
На следующем рисунке показано, как будет выглядеть запрос на извлечения из таблицы "url" записи со всеми полями с условием, что в этой строке в поле "url", будет присутствовать значение, равное "poluchity-skidku".
-
SELECT * FROM `url` WHERE `url`='poluchity-skidku'
Рис.2
Необходимый запрос мы получили и теперь можно перейти к практическому его выполнению.
Для этого в phpMyAdmin следует открыть раздел "SQL" и написать или скопировать запрос в соответствующем поле, как показано на скриншоте.

Рис.3
А после нажатия на кнопку "OK" должен появиться результат его выполнения.

Рис.4
Как видно, мы получили ожидаемый результат - выборку записи с идентификатором "4".
При этом, чуть выше результата отображается код выполненного запроса, где системой автоматически добавлен дополнительный параметр "LIMIT 0, 30", означающий, что выборка выполнялась с записи номер "0" (самой первой) с максимальным количеством в 30 строк.
Следует отметить, что поиск одиночных уникальных записей в таблицах MySQL довольно часто встречается в веб-программировании при необходимости проверки наличия в таблицах строк с определенными значениями и получения информации по нужным полям.
В качестве примера можно привести работу с личным кабинетом пользователей сайта, где постоянно требуется делать проверки на наличие пользователей в базе данных, их статус и состояние, находятся ли они во время сессии в личном кабинете, или нет.
Получение набора нескольких строк с сортировкой по заданному полю
Кроме, выборки одиночных строк, довольно часто требуется работать и с большим количество выбранных записей и иметь возможность их сортировать нужным образом. Например, организация поиска информации на сайте по запросам пользователей.
В нашей созданной таблице "url" заведомо не может быть каких-либо одинаковых значений полей, так как она предназначена для определения соответствия человеко-понятных урл (ЧПУ) к файлам страниц сайта (как составлялась данная таблица можно посмотреть в статье Создаем таблицы MySQL c помощью phpMyAdmin, SQL-команд и в PHP).
Поэтому, для того, что бы получить из данной таблицы несколько строк, воспользуемся в запросе оператором "OR" (логическое "ИЛИ"). И составим такое условие, при котором выбор строк будет происходить по любому указанному в запросе значению поля "url".
Скажем, кроме уже используемого в предыдущем примере значения "poluchity-skidku", дополнительно через оператор "OR" добавим еще два. Кроме того, отсортируем полученные строки таблицы в порядке убывания по значению идентификатора "id".
При таком варианте условия код запроса примет следующий вид.
-
SELECT * FROM `url` WHERE `url`='poluchity-skidku' OR `url`='statistika-ugonov' OR `url`='kontakti' ORDER BY `id` DESC
Рис.5
Здесь к предыдущему запросу через "OR", означающее логическое "ИЛИ", в качестве критерия поиска добавляются еще два значения поля "url" - "statistika-ugonov" и "kontakti".
Кроме того, с помощью конструкции "ORDER BY" в запросе указана сортировка выбранных строк по полю "id" в порядке убывания в соответствии ключевым словом "DESC" (если бы надо было отсортировать полученные записи по возрастанию, то вместо "DESC" нужно было бы применить "ASC".
А теперь, введем данный запрос в phpMyAdmin аналогично тому, как это делали в предыдущем случае.

Рис.6
И после его выполнения получим следующий результат.

Рис.7
В итоге, мы получили, что и требовалось - три строки таблицы с заданными критериями поиска и отсортированные по полю "id" в порядке убывания.
И таким образом, с помощью SQL-запроса смогли визуально на странице веб-приложения phpMyAdmin посмотреть результаты выборки из таблицы по заданным условиям на примере получения одиночной записи и набора нескольких строк.
Если требуется сохранить полученные данные, то можно добавить в запрос команду "INTO OUTFILE" с указанием соответствующих параметров, включая имя файла, в который требуется выполнить запись.
Но, рассматривать такой вариант здесь не имеет смысла, так как в веб-программировании для сохранения результатов обработки запросов существует другой способ извлечения данных - с использованием PHP.
Поэтому, в следующей статье, используя эти же SQL-запросы, мы посмотрим, как с помощью PHP можно перенести полученные данные на страницу сайта и вывести их на экран браузера.
С уважением,