Вывод данных из базы MySql в обратном порядке

В этом уроке я покажу Вам как вывести информацию из базы данных MySql в обратном порядке (от последней к первой). Такой вывод данных из базы может понадобиться Вам при организации вывода комментариев на сайте, а также для вывода постов, чтобы самые новые посты были всегда вверху.

дополнительные материалы к урокам демо версия урока

Для организации вывода данных из базы MySql в обратном порядке сначала необходимо создать базу данных и таблицу с данными в этой базе.

Если Вы не знаете, как установить Денвер на Ваш компьютер, создать базу данных и таблицу в ней, то можете посмотреть мой урок, в котором я подробно рассказываю как это сделать: Создание базы данных MySql. В этом уроке я рассказываю о том, как создать базу данных, создать для нее таблицу, вставлять данные в таблицу и устанавливать привелегии, чтобы потом соединяться с базой из нашего php кода. В общем там Вы можете научиться производить все основные операции над базой данных MySql из панели управления phpMyAdmin.

В этом уроке я буду использовать ту же самую базу данных «new_db» с таблицей «users», в которой у меня находятся 5 записей. Все они расположены в том порядке, в котором Вы видите их на скриншоте ниже. Наша же задача вывести этот список на веб страницу в обратном порядке. То есть те, что расположены ниже должы быть выведены первыми, а те, что в самом верху – последними.

таблица базы данных MySql

Итак, давайте приступим.

Выводим данные из базы MySql в обратном порядке

1. Для начала давайте создадим новый php файл, в котором и будем делать вывод наших данных. Назовем его «back.php». Также создадим css файл таблицы стилей и назовем его «style.css». Они должны быть сохранены в одном каталоге.

2. Подключим к нашему php файлу файл таблыцы стилей. Таким образом, код файла back.php будет выглядеть вот так:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <link rel="stylesheet" type="text/css" href="style.css"> <title>Вывод данных из базы в обратном порядке</title> </head> <body> </body> </html>

А в файле таблицы стилей style.css пропишем следующий код (впрочем Вы можете придавать такие стили, которые нужны Вам. Это всего лишь пример):

body{width:400px; margin:0 auto; background:#F8F4B6;}

3. Теперь нужно соединиться с базой данных MySql. Для этого будем использовать функцию “mysql_connect”, а в скобках должны быть указаны параметры соединения (хост, имя пользователя, пароль), которые Вы указывали, создавая привелегии в панели управления базой данных phpMyAdmin. Обратите внимание, что Ваши параметры в скобках будут отличаться от моих. Внимательно прописывайте их, иначе соединения не получится.

Далее мы прописываем функцию “die”, которая сработает при ошибке соединения.

После этого прописывается функция выбора базы данных “mysql_select_db”. В круглых скобках этой функции указывается имя базы данных, с которой Вы хотите соединиться. Далее мы также прописываем обработку ошибки соединения.

Приведенный ниже код нужно вставить между тегов <body></body> файла «back.php»:

<?php mysql_connect("localhost", "anna", "12345")//параметры в скобках ("хост", "имя пользователя", "пароль") or die("<p>Ошибка подключения к базе данных! " . mysql_error() . "</p>"); mysql_select_db("new_db")//параметр в скобках ("имя базы, с которой соединяемся") or die("<p>Ошибка выбора базы данных! ". mysql_error() . "</p>"); ?>

Теперь откройте Вашу страничку в браузере, если Вы не увидите никаких ошибок, то значит все параметры в скобках Вы прописали правильно.

Кстати, чтобы открыть страничку в браузере нужно набрать в коммандной строке браузера localhost/имя папки, в которой сохранен файл/back.php



4. С базой мы соединились удачно. Пришло время сформировать сам запрос на вывод данных из базы.

Формируя запрос нужно указать какие поля мы выбираем и из какой именно таблицы базы данных (если Вам нужно выбрать все поля, то вместо их перечисления просто ставьте символ *). Также в запросе мы указываем, что вывод будет производится по полю «id» - от большего значения к меньшему (то есть в обратном порядке, как нам и нужно). Далее обрабатываем запрос с помощью функции «mysql_query», после чего разбиваем массив полученных данных на строки при помощи «mysql_fetch_array». Полученный результат заносится в переменную «$row».

А далее организуем вывод в цикле (do - while). Результаты будут выводиться до тех пор, пока «$row» существует, то есть пока записи в таблице базы не закончатся.

При выводе мы используем так называемые флаги («%s»). Прописывается функция «printf», в круглых скобках и в кавычках мы вставляем html код (в моем случае я делаю вывод каждой записи в таблице. При этом таблицу мы прописываем только одну, а дальше она будет сама дублироваться в цикле для каждой записи). Вместо данных мы подставляем флаги – «%s», а далее (после закрывающих кавычек) прописываем какие флаги соответствуют каким данным. Например, первый флаг («%s») соответствует переменной имени («$row[‘first_name’]»).

Даже если Вы раньше не сталкивались с таким выводом, то думаю разобраться будет не сложно.

Для того, чтобы все заработало, вставьте следующий кусок кода перед закрытием блока php кода (перед закрывающимся «?>»). Не забудьте, что если поля в Вашей таблице базы данных называются не так как у меня, то Вы должны прописать свои данные.

$select_query = "SELECT first_name, last_name, email, facebook FROM users ORDER BY id DESC"; $result = mysql_query($select_query); $row = mysql_fetch_array($result); do{ printf("<p><table border='0'> <tr> <td><strong>%s %s</strong></td> </tr> <tr> <td>E-mail:</td> <td>%s</td> </tr> <tr> <td>Facebook:</td> <td>%s</td> </tr> </table></p>",$row['first_name'],$row['last_name'],$row['email'],$row['facebook']); } while($row = mysql_fetch_array($result));

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

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

вывод данных из базы MySql в обратном порядке

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

Делитесь этим уроком с Вашими друзьями с помощью кнопок социальных сетей, буду Вам благодарна!

Подписывайтесь на обновление блога, обещаю Вам много новых уроков по php, MySql и не только.

Успехов Вам, друзья, и до новых встреч!

Изменение информации в базе данных MySql из веб страницы

Вывод информации из базы данных MySql на веб страницу.

Понравилась статья? Поделись с друзьями!


Не нашли того, что искали? Воспользуйтесь расширенным поиском!

Будьте в курсе новых публикаций на Блоге!

rss podpiska

Введите Ваш E-mail:


Комментарии к этой статье:

Комментарий добавил(а): Яна
Дата: 2014-04-26

Спасибо!

Комментарий добавил(а): Админ
Дата: 2014-04-26

Всегда пожалуйста!

Комментарий добавил(а): Руслан
Дата: 2015-03-17

Радуюсь как ребенок!))) Одно слово решило целую проблему. Спасибо большое!!!

Комментарий добавил(а): Roman
Дата: 2015-08-13

Спасибо вам...это мои первые шаги в понимании PHP и связей с базой данных и вы разжевали этот урок до мельчайших подробностей. ОЧЕНЬ ПОМОГЛО !

Комментарий добавил(а): Филипп
Дата: 2016-01-10

Анна, спасибо большое, замечательный - подробно объяснённый рабочий материал

Комментарий добавил(а): Mr CaT
Дата: 2016-07-29

Вы мне еще раз помогли,спасибо!

Добавить Комментарий:


Введите сумму чисел с картинки:

Почему стоит подписаться на обновления блога

Будьте в курсе новых публикаций на Блоге!

rss podpiska

Введите Ваш E-mail: