Вывод информации из базы данных 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 работает только если в искомом массиве только одно значение)

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

Спасибо, все получилось, только после *<br/> "</p>---------<br/>* должна стоять *"*, иначе не работает. Касательно рус/англ текста: вводится и считывается все на ура, но вот отображение в самой базе данных абракадаброй, вариант с дополнением connect.php к сожалению не помогает. Но все равно спасибо за ваши труды=)

Комментарий добавил(а): Алекс
Дата: 2014-07-21

почему то у меня выводит только когда вписаны имя и фамилия. по отдельности поиск не работает. пишет результатов нет

Комментарий добавил(а): Максим
Дата: 2014-07-24

Как можно сделать при вводе данных, если имени или фамилии нет в базе, автоматически добавлялись введенные данные

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

А как можно вывести и редактировать данные которые внесены при помощт checkbox?

Комментарий добавил(а): ДЕнчиК
Дата: 2014-09-16

полезная статья возьму на заметку!

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

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

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

Сорри.... нашел косяк

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

А вот поиск по полю <select> <option > так и не работает :(

Комментарий добавил(а): Yaslonane@yandex.ru
Дата: 2014-10-03

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

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

Вопрос вот какой: А как оставаться на той же страничке после нажатия на кнопку,которая отправляет данные?

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

Посмотрите вот этот пост, там об этом написано:http://website-create.ru/web-yroki/sozdanie-saitov-yroki/100-redirekt-posle-otpravki-formy.html

Комментарий добавил(а): Евгений
Дата: 2014-12-20

Здравсивуйте ! спасибо за урок , все файлики создал к базе данных подключаюсь, но дальше застрял очень прошу Вашей помощи ! мне нужно брать с базы данных номер заказа и выводить на страничку его статус , но при вводе номера заказа я получаю "Пользователя с таким именем в базе нет " Таблица базы данных в которой есть эти значения и строки vtiger_potential - название таблицы potential_no - строка с номером заказа sales_stage - строка с статус заказа я пытался прописать все это в файлике select_user.php , резултат -"Пользователя с таким именем в базе нет" подскажите пожалуйста у меня знаний не хватает , вроде бы мелочь но не идёт , по этому но прошу совета профи , Заранее очень благодарен !

Комментарий добавил(а): Сергей
Дата: 2015-01-07

кто подскажет как стили применить к выводимой информации

Комментарий добавил(а): Алексей
Дата: 2015-01-15

В файле "style.css" болван!

Комментарий добавил(а): Ирина
Дата: 2015-01-20

здесь посмотрите www.mskapp.ru

Комментарий добавил(а): Ирина
Дата: 2015-01-20

или здесь www.мскапп.рф

Комментарий добавил(а): naiman
Дата: 2015-01-28

+++

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

Привет моей однафомельеце и спасибо за за уроки, мне они действительно очень помогли

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

было бы интересней с использованием выпадающего списка select

Комментарий добавил(а): Александр
Дата: 2015-03-24

Как сделать поиск одной строкой но из разных полей. Пишем Фамилию или Имя, или email, а выводит Контактные данные

Комментарий добавил(а): Циклоп
Дата: 2015-04-03

Не самый лучший ученик Попова решил сам стать учителем? В данном случае применение цикла do-while абсолютно неуместно.

Комментарий добавил(а): Виталий
Дата: 2015-04-07

Так же не работает поиск по одному из критериев. Подскажите куда посмотреть.

Комментарий добавил(а): Ёжик
Дата: 2015-04-07

Заместь && поставь or в пхп

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

Вписываю в форму поиска имя "Андрей" а выводит только первого из базы. Есть ещё Андреи, а их не выводит. Как исправить?

Комментарий добавил(а): парень
Дата: 2015-04-25

Анна, спасибо! Коротко и ясно, хорошо объяснили уроки. единственное-это проблема с русским языком. Кракозябры :(

Комментарий добавил(а): Александр
Дата: 2015-05-19

Долго искал и рыскал инет по поводу созздания бд, внесения и вывода инфы из нее на страницу html, и наконец то нашел, Огромнейшее спасибо вам! Вы не представляете насколько помогли мне, удачи вам в личной и профессиональной жизни!

Комментарий добавил(а): Александр
Дата: 2015-05-19

Дополнение к пред.посту. Я просто новичек, и совсем не силен в пхп, а тут так разжованно, и все досконально понятно.

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

Подскажите пожалуйста, как добавить фото в бд

Комментарий добавил(а): Виталий
Дата: 2015-07-27

Спасибо вам за статью. Хотелось бы попросить поправить немного её. В листинге 3 для файла select_user.php у вас ошибка. Недописана двойная кавычка после "</p>---------<br/> то есть должно быть "</p>---------<br/>" При чем я случайно её смог исправить, просто попробовал поставить её. . Из-за этого у меня пэхэпэ ругался. Исправьте пожалуйста У многих это может вызвать проблему. Спасибо.

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

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

Комментарий добавил(а): Алексей Макаров
Дата: 2015-11-05

Очень благодарен вам за ваш труд. Сильно пригодилась эта статья.

Комментарий добавил(а): Сергей
Дата: 2015-11-28

А возможно ли делать это в Microsoft SQL Server 2008

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

very good

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

!!!!

Комментарий добавил(а): Оля
Дата: 2016-02-03

Спасибо за помощь!

Комментарий добавил(а): Bogdanio
Дата: 2016-02-22

Спасибо за статью,ещё бы жаль что нет подобной статьи но только со связью многие ко многим

Комментарий добавил(а): viktor
Дата: 2016-08-27

http://eei.redgor.xyz/1981362/

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


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

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

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

rss podpiska

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