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

В этом уроке мы научимся выводить из базы данных MySql необходимые нам данные. Я покажу Вам как выводить данные в цикле, а также как вывести данные из базы по определенному запросу.

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

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

Если Вы пропустили предыдущие уроки, то вот ссылка на них:

1. Создание базы данных MySQL

2. Вносим пользовательские данные в базу данных MySql

В этом уроке будем учиться выводить информацию, хранящуюся в базе данных MySql на веб страницу.

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

А также научимся извлекать конкретную запись с учетом запроса пользователя.

Вывод информации из базы данных MySql

Что нам нужно сделать?

1. Мы создадим html файл, в котором будет кнопка для вывода всего списка в цикле и форма для запроса конкретного пользователя из списка.

2. Конкретного пользователя мы будем запрашивать по имени и фамилии (можете запрашивать по имени и e-mail адресу, принцип все равно будет один).

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

4. Файл обработчик будет обрабатывать наш запрос и выводить на экран то, что мы от него потребовали.

1. Итак, создадим новый html файл и назовем его search_user.html Для сохранения будем использовать папку с файлами из прошлого урока “db1” (эту папку Вы можете найти в исходниках к уроку или скачать из исходников прошлого урока. Не забудьте вписывать свои данные в файл connect.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> <fieldset> <form method="post" action="select_user.php"> <label for="first_name">Имя для поиска:</label><br/> <input type="text" name="first_name" size="30"><br/> <label for="last_name">Фамилия для поиска:</label><br/> <input type="text" name="last_name" size="30"><br/> <input id="submit" type="submit" value="Найти и вывести"><br/> </form> </fieldset> <fieldset> <form method="post" action="all_users.php"> <input id="submit" type="submit" value="Вывести всех пользователей"><br/> </form> </fieldset> <a href="info_form.html">Добавить пользователя</a> </body> </html>

А выглядеть страница будет вот так:

веб страница для запроса вывода данных из базы

Помимо формы мы поместили в нее ссылку на файл, через который мы можем добавлять пользователей ( см. предыдущий урок). Это для того, чтобы мы могли перемещаться по веб страницам и с легкостью обращаться к любому файлу.

2. Если Вы нажмете на любую из кнопок, то увидите ошибку. Так и должно быть, потому что еще никаких файлов-обработчиков мы не создали, а только прописали их имена в “action”.

Давайте это исправим и создадим первый файл, который будет искать и выводить пользователя по заданным имени и фамилии.

Создадим файл 'select_user.php' и разместим его в том же каталоге, что и html файл.

1. В этом файле мы сначала подключим файл “connect.php” (он обеспечит подключение к базе данных MySql).

2. Затем получим значения введенные в поля и поместим их в переменные “$first_name” и “$last_name”.

3. После сформируем запрос для выбора элементов с заданными параметрами из таблицы базы данных MySql.

4. С помощью функции “mysql_query” исполним этот запрос. В качестве результата эта функция возвращает массив, который мы должны разбить на строки. Делает это специальная функция “mysql_fetch_array”. Результат ее работы мы заносим в переменную “$row”.

5. При помощи конструкции “if - else” мы проверяем есть ли запись с введенными параметрами и если есть, то при помощи функции “printf” выводим на экран результат, подставляя в нужное место вывода каждый из параметров записи. Если записи с заданными параметрами нет, то выводим сообщение о том, что в базе данных отсутствуют записи с такими параметрами.

6. В конце страницы вставляем ссылки для перехода обратно в режим поиска, либо для вставки нового элемента в таблицу базы данных MySql.

Вот код всей вышеописанной процедуры:

<!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>Selected User</title> </head> <body> <?php require 'scripts/connect.php'; $first_name = trim($_REQUEST['first_name']); $last_name = trim($_REQUEST['last_name']); $sql_select = "SELECT * FROM users WHERE first_name='$first_name' && last_name='$last_name'"; $result = mysql_query($sql_select); $row = mysql_fetch_array($result); if($row) { printf("<p>Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."</p> <p><i>Контактные данные</i></p><p>E-mail: " .$row['email'] . "</p><p>Facebook: " .$row['facebook'] . "</p>---------<br/> ); } else{echo ("Пользователя с таким именем в базе нет<br/><br/>");} ?> <a href="search_user.html">Вернуться к поиску</a><br/><br/> <a href="info_form.html">Добавить пользователя</a> </body> </html>

Теперь вставьте в таблицу Вашей базы данный несколько записей людей с разными именами и фамилиями и попробуйте скрипт в действии.

Введите сначала существующие параметры – посмотрите результат, потом введите только имя без фамилии (или наоборот), введите несуществующие параметры – протестируйте Ваш скрипт. (Перед тем как начать будьте уверены, что Ваш Денвер запущен).

ввод запроса для выборки из базы данных

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

7. Если Вы поняли принцип того, что мы сделали в файле “select_user.php”, то вывести всех пользователей не составит труда.

Создайте файл “all_users.php” и поместите его в тот же каталог, где лежит файл “search_user.html”.

Отличаем этого файла от предыдущего будет то, что мы не будем передавать никаких параметров из файла “search_user.html”. Мы просто составим запрос к базе данных и попросим вывести все записи из таблицы базы.

А далее вместо конструкции “if - else” мы будем использовать конструкцию “do - while”. Эта конструкция скажет нашей программе выводить записи до тех пор пока они есть в таблице базы. Это и есть вывод данных из базы в цикле.

Итак, пропишите в файле “all_users.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>Selected User</title> </head> <body> <?php require 'scripts/connect.php'; $sql_select = "SELECT * FROM users"; $result = mysql_query($sql_select); $row = mysql_fetch_array($result); do { printf("<p>Пользователь: " .$row['first_name'] . " " .$row['last_name'] ."</p> <p><i>Контактные данные</i></p><p>E-mail: " .$row['email'] . "</p><p>Facebook: " .$row['facebook'] . "</p>---------<br/>" ); } while($row = mysql_fetch_array($result)); ?> <a href="search_user.html">Вернуться к поиску</a><br/><br/> <a href="info_form.html">Добавить пользователя</a> </body> </html>

Протестируйте кнопку, которая выводит всех пользователей:

вывод всех записей из базы данных в цикле

Теперь Вы умеете выводить записи из базы данных MySql в цикле и по заданным параметрам. Практическое применение этому Вы найдете практически везде, где речь заходит о php и MySql.

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

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

Также жду Ваших комментариев и пожеланий.

Успехов Вам и до встречи в следующем уроке!

Вносим пользовательские данные в базу данных MySql

Создание базы данных MySQL

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


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

rss podpiska

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


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

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

При нажатии на кнопку "Найти и вывести" пустой экран, остальное все работает.

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

Проверьте код. Должно работать. А также проверьте, что имя, которое вводите есть в таблице базы.

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

Действительно ничего не выводит

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

а с русским языком никаких затруднений не должно быть?просто если искать какие либо данные то он не находит их в бд,в бд забиты эти данные на русском языке,английский язык воспринимает хорошо

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

Иногда действительно бывает проблема с русскими символами. Решается так: нужно сразу после соединения с базой (можно в конце файла connect.php)прописать такой код.

mysql_query ("set character_set_client='cp1251'"); mysql_query ("set character_set_results='cp1251'"); mysql_query ("set collation_connection='cp1251_general_ci'");

Комментарий добавил(а): Ника
Дата: 2014-05-28

Спасибо! Всё понятно. Всё работает, но русским текстом не работала.

Комментарий добавил(а): Ника
Дата: 2014-05-28

Небольшая поправка: в файле select_user.php не хватает кавычки после <br/> "</p>---------<br/>

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

Народ помогите сотавить запрос в базу: есть строковый массив (ф,в,к,р - после обработки галочек) и столбец с данными set (а,б,в,к,р,п,н строка с данными в базе может содержать а,в,н по этому полю). Как правильно составить запрос по полю set, (FIND_IN_SET работает только если в искомом массиве только одно значение)

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


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

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

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

rss podpiska

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