русс | укр

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

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

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

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


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

Функции обработки результатов запроса


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


 

Если запрос, выполненный с помощью функции mysql_query() успешно выполнился, то в результате клиент получит набор записей, который может быть обработан следующими функциями PHP:

¾ mysql_result() - получить необходимый элемент из набора записей;

¾ mysql_fetch_array() - занести запись в массив;

¾ mysql_fetch_row() - занести запись в массив;

¾ mysql_fetch_assoc() - занести запись в ассоциативный массив;

¾ mysql_fetch_object() - занести запись в объект.

Также можно определить количество содержащихся записей и полей в результате запроса. Функция mysql_num_rows() позволяет узнать, сколько записей содержит результат запроса:

$q = mysql_query("SELECT * FROM mytable");

echo "В таблице mytable ".mysql_num_rows($q)." записей";

Запись состоит из полей (колонок).

С помощью функции mysql_num_fields() можно узнать, сколько полей содержит каждая запись результата:

$q = mysql_query("SELECT * FROM mytable");

echo "В таблице mytable ".mysql_num_fields($q)." полей ";

У нас также есть возможность узнать значение каждого поля. Это можно сделать с помощью следующей функции:

mysql_result (int $result, int $row, mixed $field);

Параметр функции $row задает номер записи, а параметр $field - имя или порядковый номер поля.

Предположим, SQL-запрос вернул следующий набор данных:

Email Name Last_Name

…………………………………………………………..

ivanov@mail.ru Ivan Ivanov

petrov@mail.ru Petr Petrov

Вывести это в браузер можно следующим образом:

$rows = mysql_num_rows($q);

$fields = mysql_num_fields($q);

echo "<pre>";

for ($c=0; $c<$rows; $c++) {

for ($cc=0; $cc<$fields; $cc++) {

echo mysql_result($q, $c, $cc)."\t";

echo "\n";



}

}

echo "</pre>";

Следует отметить, что функция mysql_result() универсальна: зная количество записей и количество полей, можно "обойти" весь результат, но в тоже время, скорость работы данной функции достаточно низка. Поэтому, для обработки больших наборов записей рекомендуется использовать функции mysql_fetch_row(), mysql_fetch_array(), и.т.д.

Функция mysql_fetch_row(int $res) получает сразу всю строку, соответствующую текущей записи результата $res. Каждый следующий вызов функции перемещает указатель запроса на следующую позицию (как при работе с файлами) и получает следующую запись. Если более нет записей, то функция возвращает FALSE. Пример использования данной функции:

$q = mysql_query("SELECT * FROM mytable WHERE month=\"$db_m\" AND day=\"$db_d\");

for ($c=0; $c<mysql_num_rows($q); $c++)

{

$f = mysql_fetch_row($q);

echo $f;

}

Использовать функцию mysql_fetch_row() не всегда удобно, так как значения всех полей одной записи находятся все в одной строке. Удобнее использовать функцию mysql_fetch_array(), которая возвращает ассоциативный массив, ключами которого будут имена полей.

Функция mysql_fetch_array(int $res [, int $result_type]) возвращает не ассоциативный массив, а массив, заданный необязательным параметром $result_type, который может принимать следующие значения:

¾ MYSQL_ASSOC - возвращает ассоциативный массив;

¾ MYSQL_NUM -возвращает массив с числовыми индексами, как в функции mysql_fecth_row();

¾ MYSQL_BOTH - возвращает массив с двойными индексами, то есть вы можете работать с ним, как с ассоциативным массивом и как со списком (MYSQL_BOTH - это значение по умолчанию для параметра $result_type.

В PHP есть функция, возвращающая ассоциативный массив с одним индексом:

mysql_fetch_assoc(int $res);

Фактически, данная функция является синонимом для mysql_fetch_array($res, MYSQL_ASSOC);

Пример использования функции mysql_fecth_array():

$q = mysql_query("SELECT * FROM mytable WHERE month=\"$db_m\" AND day=\"$db_d\");

for ($c=0; $c<mysql_num_rows($q); $c++)

{

$f = mysql_fetch_array($q);

echo "$f[email] $f[name] $f[month] $f[day] <br>";

}

Как видно, использовать функцию mysql_fetch_array() намного удобнее, чем mysql_fetch_row().



<== предыдущая лекция | следующая лекция ==>
Функции соединения с сервером MySQL | Функции получения информации о результатах SQL-запросов


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


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

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

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


 


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

 
 

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

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