Получение результата

Рассмотрим какой-нибудь запрос к MySQL в РНР-программе:

$result = mysql_query("SELECT * FROM people WHERE name!=' ' ORDER BY id")

or die(mysql_error());

После того как запрос выполнен, идентификатор результирующего набора данных помещен в $result. Результат (result-set) — это упорядоченный набор данных, полностью аналогичный двумерному массиву в РНР. А именно, результат представляет собой массив строк, каждая из которых состоит из одной или нескольких ячеек. Записи и поля в таблице не упорядочены и не могут быть извлечены, например, указанием их номера (такого номера просто не существует; для выборки необходимо составлять логическое wHERE-выражение). В то же время, результирующий набор данных — это всегда массив записей, или массив массивов ячеек.

В общем случае результирующий набор данных, соответствующий некоторой таблице, получается простым запросом "select * from таблица".

Количество строк, вошедших в результат, можно узнать при помощи функции mysql_num_rows(). Например, если при выборке из таблицы оказалось, что в таблице имеются 10 записей с непустым полем name, то мы в идентификаторе результата получим "ссылку" на 10 "строчек". Рассмотрим способы получения каждой строчки результата.

Разработчики РНР предусмотрели быстрый способ получения результата запроса. Он чем-то похож на работу с файлами: появляется понятие текущей записи результата, и следующая операция считывания передвигает этот указатель на одну позицию вперед. Также можно установить указатель на любую указанную запись.

// распечатывание в браузер содержимое некоторой таблицы

<?php ## Получение результата запроса.

require_once "mysql_connect.php";

// Выполняем запрос.

$r = mysql_query('SELECT * FROM people ORDER BY id')

or die(mysql_error());

 

// Получаем весь результат в массив $data.

for ($data=array(); $row=mysql_fetch_assoc($r); $data[]=$row);

// Выводим массив на экран,

echo "<pre>"; print_r($data); echo "</pre>";

?>

В результате в массиве $data окажется список ассоциативных массивов. каждый такой массив состоит из пар имя_ячейки=>значение, где имя_ячейки — это имя поля в нашей таблице (id или name), а значение — соответствующее ему значение из очередной записи. Здесь используется функция mysql_fetch_assoc(), получающая очередную строку из результирующего набора данных.

array mysql_fetch_assoc (int $result)

Функция возвращает ассоциативный массив со значениями полей очередной строки результата $result. Если указатель текущей позиции результата был установлен за последней записью (т. е. строки кончились), возвращает false. Текущая позиция сдвигается к следующей записи, так что очередной вызов mysql_fetch_assoc() вернет следующую строку результата.

AS: переименование полей

Ключи в результирующем массиве обычно совпадают с именами полей в таблице, откуда было произведено извлечение данных. Однако запрос select позволяет производить переименование полей. Делается это при помощи конструкции AS:

$r = mysql_query('SELECT id AS number, name AS surname FROM people');

for ($data=array(); $row=mysql_fetch_assoc($r); $data[]=$row);

Теперь в $data окажется список ассоциативных массивов, соответствующих строкам в результате $r, однако, ключи этих массивов будут равны number и surname, а не id и name. Произошло переименование.








Дата добавления: 2015-08-26; просмотров: 578;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.