русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Отображение данных, хранящихся в MySQL


Дата добавления: 2015-06-12; просмотров: 632; Нарушение авторских прав


Чтобы отобразить какие-то данные в браузер с помощью PHP, нужно сначала получить эти данные в виде переменных PHP. При работе с MySQL без посредника (такого, как PHP) выборка данных производится с помощью команды SELECT языка SQL:

mysql> SELECT * FROM Artifacts;

В предыдущей главе мы говорили, что любой запрос, в том числе и на выборку, можно отправить на сервер с помощью функции mysql_query(); Там у нас стояла немного другая задача - получить данные из формы и отправить их с помощью запроса на вставку в базу данных. Результатом работы mysql_query() там могло быть только одно из выражений, TRUE или FALSE. Теперь же требуется отправить запрос на выбор всех полей, а результат отобразить в браузере. И здесь результат - это целая таблица значений, а точнее, указатель на эту таблицу. Так что нужны какие-то аналоги функции mysql_field_name(), только чтобы они извлекали из результата запроса не имя, а значение поля. Таких функций в PHP несколько. Наиболее популярные - mysql_result() и mysql_fetch_array().

Синтаксис mysql_result

смешанное mysql_result (ресурс result, целое row [, смешанное field])

mysql_result() возвращает значение одной ячейки результата запроса. Аргумент field может быть порядковым номером поля в результате, именем поля или именем поля с именем таблицы через точку tablename.fieldname. Если для имени поля в запросе применялся алиас ('select foo as bar from...'), используйте его вместо реального имени поля.

Работая с большими результатами запросов, следует задействовать одну из функций, обрабатывающих сразу целый ряд результата (например, mysql_fetch_row(), mysql_fetch_array() и т.д.). Так как эти функции возвращают значение нескольких ячеек сразу, они НАМНОГО быстрее mysql_result(). Кроме того, нужно учесть, что указание численного смещения (номера поля) работает намного быстрее, чем указание колонки или колонки и таблицы через точку.



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

Синтаксис mysql_fetch_array

массив mysql_fetch_array ( ресурс result [, целое result_type])

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

mysql_fetch_array() - это расширенная версия функции mysql_fetch_row(). Помимо хранения значений в массиве с численными индексами, функция возвращает значения в массиве с индексами по названию колонок.

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

select Artifacts.photo as art_image, Persons.photo as pers_image from Artifacts, Persons

Пример 11.1. Запрос с дублирующимися именами колонок (html, txt)

Важно заметить, что mysql_fetch_array() работает НЕ медленнее, чем mysql_fetch_row(), и предоставляет более удобный доступ к данным.

Второй опциональный аргумент result_type в функции mysql_fetch_array() является константой и может принимать следующие значения: MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH. Эта возможность добавлена в PHP 3.0.7. Значением по умолчанию является: MYSQL_BOTH.

Используя MYSQL_BOTH, получим массив, состоящий как из ассоциативных индексов, так и из численных. MYSQL_ASSOC вернет только ассоциативные соответствия, а MYSQL_NUM - только численные.

Замечание: имена полей, возвращаемые этой функцией, регистрозависимы.

Теперь отобразим данные из Artifacts в виде таблицы в браузере:

<?/ * сначала делаем то же, что и раньше: устанавливаем соединение, выбираем базу и получаем список и число полей в таблице Artifacts */$conn=mysql_connect("localhost","nina","123");$database = "book";$table_name = "Artifacts";mysql_select_db($database);$list_f = mysql_list_fields($database,$table_name);$n1 = mysql_num_fields($list_f);// сохраним имена полей в массиве $namesfor($j=0;$j<$n1; $j++){ $names[] = mysql_field_name ($list_f,$j);}$sql = "SELECT * FROM $table_name"; // создаем SQL запрос$q = mysql_query($sql,$conn) or die(); // отправляем // запрос на сервер$n = mysql_num_rows($q); // получаем число строк результата//рисуем HTML-таблицуecho "&nbsp;<TABLE BORDER=0 CELLSPACING=0 width=90% align=center><tr><TD BGCOLOR='#005533' align=center> <font color='#FFFFFF'><b>$table_name</b></font></td> </tr></TABLE>"; echo "<table cellspacing=0 cellpadding=1 border=1 width=90% align=center>"; // отображаем названия полей echo "<tr>"; foreach ($names as $val){ echo "<th ALIGN=CENTER BGCOLOR='#C2E3B6'> <font size=2>$val</font></th>"; } // отображаем значения полей echo "</tr>"; for($i=0;$i<$n; $i++){ // перебираем все строки в // результате запроса на выборку echo "<tr>"; foreach ($names as $val) { // перебираем все // имена полей $value = mysql_result($q,$i,$val); // получаем // значение поля echo "<td><font size=2>&nbsp;$value</font></td>"; // выводим значение поля } echo "</tr>"; }echo "</table>";

Листинг 11.1.1. Отображение данных из Artifacts в виде таблицы в браузере (html, txt)

Сделаем то же самое с помощью mysql_fetch_array():

<?/* ... начало то же, что и в предыдущем примере */ // отображаем значения полей// получаем значение поля в виде ассоциативного массива while($row = mysql_fetch_array($q, MYSQL_ASSOC)) { echo "<tr>"; foreach ($names as $val){ echo "<td><font size=2>&nbsp;$row[$val]</font></td>"; // выводим значение поля } echo "</tr>"; }echo "</table>";?>

 



<== предыдущая лекция | следующая лекция ==>
Запись данных в базу данных | Среда языка программирования Pascal ABC


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.104 сек.