От автора: в некоторых языках программирования «приаттачивание» БД происходит подобно ловле рыбы: может клюнуть, а может и нет. Хорошо, что этим не страдает изучаемая нами дисциплина. Но все равно, чтобы не заниматься «рыболовством», нужно знать, как происходит вывод данных базы данных PHP.
Окунемся в SQL
Чтобы правильно отображать информацию из любой современной СУБД, нужно быть хорошо знакомым с SQL-командами и их синтаксисом. Из всех систем управления нас, конечно же, интересует MySQL.
Для выборки данных используется команда SELECT. Основы ее применения и написания лучше всего рассматривать на конкретных примерах. Я также рекомендую воспользоваться помощью одной из программных оболочек для администрирования СУБД (Workbench, phpMyAdmin). Вы, скорее всего, используете последнюю.
1 |
SELECT * from имя_таблицы; |
Это самый популярный вариант применения команды для выборки. Таким образом мы указываем СУБД, что хотим выделить (выбрать) все строки, которые содержатся в таблице. Например:
1 |
SELECT * FROM `country`; |
Таким запросом мы осуществляем вывод из указанной базы данных MySQL PHP всей информации. Забыл напомнить, что особенностями синтаксиса обладает не только SQL, но и СУБД, основанные на нем.
В MySQL одной из таких особенностей является экранирование в запросах названий таблиц. Для этого используются не одинарные кавычки, а тильда (на клавиатуре она находится сверху клавиши «Ё»).
Чтобы вывести значения определенных столбцов, вместо звездочки («*») следует перечислить их имена. Пример запроса:
1 |
SELECT name, continent, region FROM `country`; |
Как видно на снимке, с помощью этого запроса мы вывели значения из указанных столбцов. Обратите внимание, что столбцы отображаются в том порядке, в котором они перечислены. Давайте поменяем их местами и посмотрим, что будет:
1 |
SELECT region,name,continent FROM `country`; |
Получается, что с помощью запросов мы может контролировать порядок вывода значений столбцов таблицы. Все рассмотренные выше примеры SELECT я вызывал изнутри БД. При этом запросы были направлены не к серверу СУБД, а прямо к таблицам базы. Но чаще применяется несколько иной синтаксис.
Если выйти из БД и осуществить в PHP вывод таблицы не из базы данных, а напрямую через ядро MySQL, тогда мы получим сообщение, что ни одна из БД не выделена. Доказательство:
Чтобы не «нарваться» на эти «грабли», лучше сразу прописывать имя базы и название таблицы. Пример реализации:
1 |
SELECT region, name, continent FROM `world`.`country`; |
Отображаем информацию на экране
Думаю, пока этого минимума знаний по SQL нам достаточно. Теперь займемся выводом информации из базы данных MySQL в PHP. Я не буду останавливаться на рассмотрении того, как происходит подключение к серверу СУБД. Эту тему мы проходили в одном из прошлых материалов.
Чаще всего для вывода данных из таблицы используется цикл и функция mysqli_fetch_array(). Она принимает в качестве входного параметра переменную, в которую записывается результат работы mysqli_query(). Пример:
1 2 3 4 5 6 7 8 9 10 |
<?php $str= mysqli_connect('localhost', 'root', '', 'world'); $select= mysqli_query($str, "SELECT region, name, continent FROM `world`.`country`;"); while ($r= mysqli_fetch_array($select)) { echo $r['region'] . " "; echo $r['name'] . " "; echo $r['continent'] . "<br />"; } mysqli_close($str); ?> |
В этом примере вывода сортированных данных из базы MySQL PHP функция mysqli_fetch_array() преобразует результаты выборки в ассоциативный массив. В качестве ключей используются имена столбцов, указанные в запросе.
Обратите внимание на функцию mysqli_close(), вызов которой происходит в конце скрипта. Она закрывает соединение с БД. В качестве аргумента функция принимает идентификатор строки подключения.
СУБД может использоваться не только для хранения строк, но и текста. Например, чтобы реализовать вывод новостей из базы данных в PHP, следует лишь немного изменить предыдущий код. А для столбца таблицы, в котором будет храниться текстовый контент, задать тип данных text.
Думаю, теперь не придется заниматься «рыбалкой». Вы сможете самостоятельно подключиться к любой БД и вывести те данные, которые нужны для работы скрипта.