От автора: что вы мобильник так трясете? Письмо пришло на почтовый ящик, а вы его прочитать не можете? Понятно! Вы бы еще, чтобы вывести данные из MySQL, с бубном возле ПК побегали. После «изъятия» письма этим и собирались заняться, и даже бубен прихватили? Ну ладно, не буду мешать. А для остальных «не шаманов» расскажу, как «вынуть» данные из MySQL без бубна.
Средства вывода phpMyAdmin
Отложите пока в сторону бубен, глаза ползучего питона и ожерелье из мухоморов. Опробуем для получения информации из БД менее «магические» способы. Начнем с рассмотрение возможностей, которые предоставляет для этого оболочка phpMyAdmin. Запускаем программу, слева в списке выбираем нужную базу. Чтобы вывести данные из таблицы MySQL, в основном верхнем меню переходим в раздел «Обзор». После этого получаем содержимое выбранной таблицы.
В результате нам удалось в три щелчка получить доступ к содержимому нужной базы данных. Но что-то выбранная для экспериментов БД уж слишком приелась. Конечно, все мы любим «зверюшек», но от наших «танцев с бубнами» они все быстро разбегутся. Нелегкое это дело «шаманство» 🙂
Чтоб не мучатся с созданием новой БД и не тратить понапрасну драгоценное время, скачаем готовую базу с официального ресурса MySQL. А сэкономленные таким образом минуты потратим на обучение «волшебству» администрирования СУБД. Установка скачанной базы происходит в phpMyAdmin через вкладку «Импорт».
Импортированная БД «World» содержит намного больше информации, и поэтому более интересна для обучения (на случай, если мы заскучаем во время освоения материала). Ее «потенциал» можно увидеть, открыв любую из ее таблиц. Например, «City»:
Окунаемся в язык структурированных запросов
Все это интересно, но что делать, если нужно вывести строку MySQL, а не полностью таблицу? Визуально найти среди сотни строк искомую практически невозможно. Для этого нужно воспользоваться средствами SQL.
В языке структурированных запросов для вывода отсортированных данных используется оператор SELECT. Его синтаксис:
1 |
SELECT `имя_поля1` ... `имя_поляN` FROM `имя_таблицы` WHERE условие |
Приведем пример SQL запроса к таблице «city». Например, нам нужно вывести строку, в которой значение столбца id равно 670:
1 |
SELECT * FROM `city` WHERE `id`=670 |
Запрос на вывод из базы данных MySQL мы начинаем указанием команды (SELECT). Затем звездочкой (*) мы «говорим» СУБД, что хотим сделать выборку всех значений строки из (FROM) таблицы city, где значение столбца id равно заданному значению (id
=670). Вводим запрос в окно редактора (вкладка «SQL»). Вот какой результат возвращает нам сервер:
Сервер возвратил нам строку, отвечающую заданным в запросе критериям. Выше система выводит код запроса, а также автоматически добавляет к нему свою часть. По умолчанию, с помощью директивы ORDER BY программа (НЕ СУБД) сортирует результаты выборки по значению столбца Name (city
.Name
). При этом значения столбца сортируются по возрастанию (параметр ASC).
Обратите внимание на «тонкости» синтаксиса (написания) запросов на вывод таблиц MySQL. Названия имя таблицы экранируются не одинарными кавычками, а грависом. Он является знаком слабого ударения. На клавиатуре он расположен на клавише с буквой «Ё».
Это важно, поскольку при использовании одинарных кавычек система MySQL буде выдавать ошибку о нарушении синтаксиса
написания команды запроса. Для наглядности попробуйте сами. В результате увидите следующий результат:
Выборка данных из кода PHP
Теперь постараемся произвести вывод данных из MySQL в PHP. Отобразим на экране ту же строку, полученную в предыдущем запроса. Вот код примера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php $con_str=mysql_connect('localhost', 'root', '', 'world'); if(mysql_connect('localhost','root')){ echo "Hello!!!"; } mysql_select_db('db1',$con_str); $result=mysql_query("SELECT * FROM `world`.`city` WHERE id=670"); while($row = mysql_fetch_array($result)){ $id=$row['ID']; $name=$row['Name']; $country_code=$row['CountryCode']; $district=$row['District']; $population=$row['Population']; echo "<p>$id - $name - $country_code - $district - $population</p>"; } mysql_close(); ?> |
В результате выгрузки MySQL мы получили ту же самую строку:
Но что, если нужно отобразить всю таблицу? Для этого придется немного изменить код SQL запроса:
1 |
SELECT * FROM `world`.`city` |
Вот, что мы вывели в браузере:
То есть, мы отобразили все данные таблицы целиком. Но они слишком громоздки, и могут не помещаться в экранной области браузера. С помощью оператора LIMIT в запросе можно задать, какие строки выводить (с какой по какую). Например, нам нужно просмотреть данные с 1 по 10 строки. Тогда запрос для вывода страницы из MySQL будет выглядеть так:
1 |
SELECT * FROM `world`.`city` LIMIT 0 , 10 |
Обратите внимание, что для использования в PHP мы указываем имя базы и таблицы через точку, отдельно экранировав друг от друга.
Экспорт БД
О том, как экспортировать базу данных MySQL, мы подробно рассказывали в одном из наших предыдущих материалов. Сегодня мы рассмотрим вариант переноса данных различных форматов. Чаще всего требуется импортировать информацию в SQL из CSV и наоборот.
На самом деле CSV является обычным текстовым форматом, в котором все строки разделены запятыми. Он идеально подходит для переноса информации в интернете, поскольку файлы в этом формате «весят» в несколько раз меньше. Кроме этого CSV легко расширяем, что позволяет в одном файле поместить нужное количество БД и при необходимости добавлять новые.
Для переноса информации из этого формата в MySQL в веб-программированию пишутся большие куски кода, описанию которых придется посвятить отдельную статью. Но мы пойдем по иному пути, и рассмотрим, как экспортировать данные из CSV в MySQL с помощью phpMyAdmin.
Заходим в оболочку. В основном меню сверху переходим в раздел «Импорт». Затем «Импортируемый файл». Указываем через «Обзор вашего компьютера» нужный файл, формат и жмем внизу «Ок».
Импорт данных окончен. Теперь осталось задать структуру таблиц и тип данных столбцов.
Как видите, чтобы вывести данные из MySQL, не обязательно быть шаманом и плясать под звуки бубна. Нам для этого хватило возможностей, предоставляемых СУБД. Кстати, для «изъятия» письма из телефона бубен тоже не нужен 🙂