Функции PHP »»» Функции баз данных SESAM(только PHP 3 CVS)
sesam_fetch_row - извлекает один ряд как массив.
Описание
array sesam_fetch_row (string result_id [, int whence [, int offset]])
Возвращает массив, соответствующий извлечённому ряду, или
FALSE, если рядов больше нет.
Количество столбцов в результирующем наборе возвращается в элементе
ассоциативного массива $array["count"]. Поскольку результирующие столбцы могут
быть пустыми, функция count() не может использоваться с результирующим рядом, возвращённым функцией
sesam_fetch_row().
result_id это правильный result id, возвращённый функцией
sesam_query() (только запросы select!).
whence это необязательный параметр для операции извлечения в "scrollable/прокручиваемых"
курсорах, который может иметь в качестве значения одну из предопределённых
констант:
Таблица 1. Правильные значения параметра "whence"
Значение | Константа | Смысл |
---|
0 | SESAM_SEEK_NEXT | читать последовательно (после извлечения по умолчанию устанавливается SESAM_SEEK_NEXT) |
1 | SESAM_SEEK_PRIOR | читать последовательно в обратном направлении (после извлечения по
умолчанию устанавливается SESAM_SEEK_PRIOR) |
2 | SESAM_SEEK_FIRST | вернуться к первому ряду (после извлечения по умолчанию устанавливается
SESAM_SEEK_NEXT) |
3 | SESAM_SEEK_LAST | найти последний ряд (после извлечения по умолчанию устанавливается
SESAM_SEEK_PRIOR) |
4 | SESAM_SEEK_ABSOLUTE | найти абсолютный номер ряда, заданного как
offset (С базой 0. После извлечения по умолчанию устанавливается
SESAM_SEEK_ABSOLUTE, а внутреннее значение смещения увеличивается на 1)
|
5 | SESAM_SEEK_RELATIVE | искать относительно текущей позиции курсора, где
offset может быть положительным или отрицательным значением смещения. |
Этот параметр верен только для "scrollable" курсоров.
При использовании "scrollable" курсоров, курсор можно свободно
позиционировать в результирующем наборе. Если параметр
whence опущен, используются глобальные значения по умолчанию прокручивающего типа
(инициализируется в SESAM_SEEK_NEXT, а устанавливается функцией sesam_seek_row()). Если
whence предоставлен,
его значение замещает глобальное значение по умолчанию.
offset это необязательный параметр, который вычисляется (и требуется), только если
whence это
SESAM_SEEK_RELATIVE или
SESAM_SEEK_ABSOLUTE. Этот параметр верен только для "scrollable" курсоров.
sesam_fetch_row() извлекает один ряд данных из результата, ассоциированного со специфицированным
идентификатором результата.Ряд возвращается как массив (индексированный
значениями в диапазоне от
0 до $array["count"]-1).
Поля могут быть пустыми, поэтому вы обязаны проверять существование поля
РНР-функцией isset(). Тип возвращаемых полей зависит от соответствующего SQL-типа, объявленного для
столбца (см. в разделе SESAM. Обзор. о применяемых соглашениях). SESAM "multiple
fields/множественные поля" являются "inlined/инлайновыми" и рассматриваются
как последовательность столбцов.
Последующие вызовы sesam_fetch_row() должны возвращать следующий ряд (или предыдущий, или 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 in backward order
print "<TABLE BORDER>\n";
$row = sesam_fetch_row ($result, SESAM_SEEK_LAST);
while (is_array ($row)) {
print " <TR>\n";
for ($col = 0; $col < $row["count"]; ++$col) {
print "<TD>".htmlspecialchars ($row[$col])."</TD>\n";
}
print " </TR>\n";
// use implied SESAM_SEEK_PRIOR
$row = sesam_fetch_row ($result);
}
print "</TABLE>\n";
sesam_free_result ($result);
?> |
|
См. также sesam_fetch_array(), которая возвращает ассоциативный массив, и sesam_fetch_result(), которая возвращает много рядов за один вызов.