Вывод информации из базы данных 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
Понравилась статья? Поделись с друзьями!
Будьте в курсе новых публикаций
на Блоге!
Комментарии к этой статье:
Добавить Комментарий:
Комментарий добавил(а): Юрий
Дата: 2014-04-11
При нажатии на кнопку "Найти и вывести" пустой экран, остальное все работает.