Функции PHP »»» Функции баз данных SESAM(только PHP 3 CVS)
sesam_fetch_array - извлекает один ряд как ассоциативный массив.
Описание
array sesam_fetch_array (string result_id [, int whence [, int offset]])
Возвращает массив, соответствующий извлечённому ряду, или
FALSE, если рядов больше нет.
sesam_fetch_array() это альтернативная версия sesam_fetch_row().Вместо хранения данных в числовых индексах результирующего массива, она
хранит их в ассоциативных индексах, используя в качестве ключей имена полей.
result_id это правильный результирующий идентификатор, возвращаемый функцией
sesam_query() (только запросы типа select!).
О правильных значениях необязательных параметров
whence и
offset см. sesam_fetch_row().
sesam_fetch_array() извлекает один ряд данных из результата, ассоциированного со специфицированным
результирующим идентификатором.
Ряд возвращается как ассоциативный массив. Каждый столбец результата
хранится с ассоциативным индексом, равным имени столбца
(поля). Имена столбцов конвертируются в нижний регистр.
Столбцы без имени поля (например, результаты арифметических операций) и
пустые поля не хранятся в этом массиве. Также,
если два или более столбца результата имеют одинаковые имена столбцов,
последний столбец имеет преимущество.В этой ситуации вызывайте sesam_fetch_row() или создайте псевдоним для столбца.
SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2 |
Специальная обработка даёт возможность извлекать "multiple field/многопольные"-столбцы
(которые иначе все имели бы одинаковые имена столбцов).Для каждого "multiple field"-столбца
конструируется имя индекса путём присоединения строки "(n)", где n это
субиндекс
multiple field-столбца, в диапазоне от 1 до объявленного фактора повтора.
Эти индексы - НЕ на базе 0, чтобы соответствовать номенклатуре синтаксиса
соответствующего запроса/query.Для столбца, объявленного:
CREATE TABLE ... ( ... MULTI(3) INT ) |
ассоциативные индексы, используемые для отдельных "multiple field"-столбцов,
будут "multi(1)",
"multi(2)" и "multi(3)" соответственно.
Последующие вызовы sesam_fetch_array() возвратят следующий (или предыдущий, или n'ный следующий/предыдущий, в
зависимости от атрибутов прокрутки) ряд результирующего набора, или
FALSE, если рядов больше нет.
Пример 1. Массив извлечения SESAM <?php
$result = sesam_query ("SELECT * FROM phone\n".
"WHERE LASTNAME='".strtoupper($name)."'\n".
"ORDER BY FIRSTNAME", 1);
if (!$result) {
... error ...
}
// print the table:
print "<TABLE BORDER>\n";
while (($row = sesam_fetch_array ($result)) && count ($row) > 0) {
print " <TR>\n";
print " <TD>".htmlspecialchars ($row["firstname"])."</TD>\n";
print " <TD>".htmlspecialchars ($row["lastname"])."</TD>\n";
print " <TD>".htmlspecialchars ($row["phoneno"])."</TD>\n";
print " </TR>\n";
}
print "</TABLE>\n";
sesam_free_result ($result);
?> |
|
См. также sesam_fetch_row(), которая возвращает индексированный массив.