Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_7_1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
686.08 Кб
Скачать

4 Извлечение данных

Данные из базы можно прочитать с помощью простого запроса:

$Query="SELECT * from $TableName";

Символ звездочка "*", используемый в данной строке, эквивалентен понятию "всё", то есть требуется выбрать всё из столбца "$TableName". Этой короткой инструкции часто вполне достаточно для извлечения данных.

Однако запрос можно ограничить, указав только часть полей, например:

SELECT FirstName, Comments from $TableName;

Этот запрос дает задание извлечь информацию только из этих двух столбцов — имени и комментариев.

Другой способ ограничить запрос — написать следующую инструкцию:

SELECT * from $TableName where (FirstName= 'Сергей').

Здесь запрашиваем информацию из всех столбцов, но только из тех строк, где в столбце с указанием имени имеется значение Сергей.

Основное отличие извлечения данных от записи их в базу состоит в том, что запрос необходимо обрабатывать по-другому. Целесообразно присваивать результаты запроса переменной:

$Result=mysql_query($Query);

Как сказал бы непрофессионал, этой переменной теперь известен результат запроса. Для извлечения информации необходимо поместить переменную "$Result" в цикл, последовательно пройдя по всем строкам полученного результата запроса.

while($Row=mysql_fetch_array($Result)) {

…………….

}

Каждая итерация цикла будет превращать следующую строку информации из запроса (сохраненную в переменной "$Result") в массив с названием "$Row".

Этот процесс будет продолжаться, пока не останется больше строк с информацией. Лучший способ понять данную систему — написать сценарий, который считывает информацию из таблицы "Feedback". Предварительно необходимо заполнить таблицу данными с помощью формы "form.html".

Извлечение данных из таблицы

1. Создайте новый PHP-документ в текстовом редакторе следующего содержания.

  1. <HTML>

  2. <HEAD>

  3. <TITLE>Извлечение данных из БД</TITLE></HEAD>

  4. <BODY>

  5. <?php

  6. // Установка значения переменных для доступа к базе данных.

  7. $Host = "localhost";

  8. $User = "root";

  9. $Password = "";

  10. $DBName = "db1";

  11. $TableName = "Feedback";

  1. $Link = mysql_connect ($Host, $User, $Password);

  2. mysql_select_db($DBName);

  1. $Query = "SELECT * from $TableName";

  2. $Result = mysql_query ($Query);

  1. // Создание таблицы.

  2. print ("<TABLE BORDER=1 WIDTH=\"75%\" CELLSPACING=2 CELLPADDING=2 ALIGN=CENTER>\n");

  3. print ("<TR ALIGN=CENTER VALIGN=TOP>\n");

  4. print ("<TD ALIGN=CENTER VALIGN=TOP>Имя</TD>\n");

  5. print ("<TD ALIGN=CENTER VALIGN=TOP>Адрес электронной почты</TD>\n");

  6. print ("<TD ALIGN=CENTER VALIGN=TOP>Комментарии</TD>\n");

  7. print ("</TR>\n");

  1. // Получение результатов из базы данных.

  2. while ($Row = mysql_fetch_array ($Result)) {

  3. print ("<TR ALIGN=CENTER VALIGN=TOP>\n");

  4. print ("<TD ALIGN=CENTER

  5. VALIGN=TOP>$Row[FirstName]$Row[LastName]

  6. </TD>\n");

  7. print ("<TD ALIGN=CENTER

  8. ALIGN=TOP>$Row[EmailAddress]</TD>\n");

  9. print ("<TD ALIGN=CENTER

  10. VALIGN=TOP>$Row[Comments]</TD>\n");

  11. print ("</TR>\n");

  12. }

  13. mysql_close ($Link);

  14. print ("</TABLE>\n");

  15. ?>

  16. </BODY>

  17. </HTML>

Строки с № 1 по № 4 создают стандартный HTML-заголовок.

Строки с № 5 по № 11 открывают PHP-раздел страницы и задают переменные для доступа в базу данных.

Строки с № 12 по № 15 создают соединение с сервером базы данных, открывают базу данных, определяют и выполняют запрос.

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

Строки с № 16 по № 22 создают HTML-таблицу для выведения на экран результатов запроса.

Так как извлекаем информацию из таблицы и выводим ее на экран в виде кода HTML, то целесообразно их так же представить в виде HTML-таблицы. Тогда страница будет выглядеть наглядно и аккуратно.

Строка № 24 создаёт цикл, извлекающий строки из базы данных, пока они не кончатся.

Цикл помещает в переменную "$Row" массив, состоящий из первой строки таблицы в переменной "$Result". Затем исполняются соответствующие команды. При обращении к строке "mysql_fetch_array ($Result)" на очередном проходе цикла переменная "$Row" получает следующую строку. Цикл функционирует, пока не останется строк с информацией.

Строки с № 25 по № 34 выводят на экран информацию из базы данных в виде HTML-таблицы.

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

Строки с № 33 по № 34 закрывают строку HTML-таблицы и цикл "while".

Еще раз подчеркнем, что этот цикл получает строку данных из таблицы БД, присваивает ее массиву "$Row", затем печатает строку HTML-таблицы.

Строки с № 35 по № 39 отключают от сервера MySQL, закрывают HTML-таблицу, РНР-раздел и саму HTML-страницу.

2. Сохраните сценарий под именем "DisplayDB.php", загрузите его на сервер и протестируйте в браузере.

Как видно из приведённого листинга, SQL-запрос на извлечение всех данных из таблицы очень прост, но чтобы получить все данные, необходимо создать цикл.

С помощью РНР можно извлекать данные из БД и создавать динамические Web-страницы, что невозможно сделать только средствами HTML.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]