Вывод данных из базы 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 и не только.

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

Leave a Reply