Перемещает внутренний указатель в результате запроса


(PHP 4, PHP 5)

mysql_data_seekПеремещает внутренний указатель в результате запроса

Внимание

Данное расширение устарело, начиная с версии PHP 5.5.0, и будет удалено в будущем. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:

Описание

bool mysql_data_seek ( resource $result , int $row_number )

mysql_data_seek() перемещает внутренний указатель результата запроса, с которым связан переданный дескриптор, к ряду с указанным номером. Следующий вызов к функции получения данных MySQL, такой как mysql_fetch_assoc(), вернёт именно его.

Нумерация row_number начинается с 0. row_number должен быть значением в диапазоне от 0 до mysql_num_rows() - 1. Однако, если результат пуст (mysql_num_rows() == 0), то попытка сдвига указателя к нулевому ряду завершится неудачей - будет вызвана ошибка уровня E_WARNING и mysql_data_seek() вернет FALSE.

Список параметров

result

Обрабатываемый результат запроса. Этот результат может быть получен с помощью функции mysql_query().

row_number

Желаемый номер ряда в полученном дескрипторе результата.

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования mysql_data_seek()

<?php
$link 
mysql_connect('localhost''mysql_user''mysql_password');
if (!
$link) {
    die(
'Ошибка соединения: ' mysql_error());
}
$db_selected mysql_select_db('sample_db');
if (!
$db_selected) {
    die(
'Не удалось выбрать базу данных: ' mysql_error());
}
$query 'SELECT last_name, first_name FROM friends';
$result mysql_query($query);
if (!
$result) {
    die(
'Ошибка запроса: ' mysql_error());
}
/* получение рядов в обратном порядке */
for ($i mysql_num_rows($result) - 1$i >= 0$i--) {
    if (!
mysql_data_seek($result$i)) {
        echo 
"Не удалось переместиться к ряду $i: " mysql_error() . "\n";
        continue;
    }

    if (!(
$row mysql_fetch_assoc($result))) {
        continue;
    }

    echo 
$row['last_name'] . ' ' $row['first_name'] . "<br />\n";
}

mysql_free_result($result);
?>

Примечания

Замечание:

Функция mysql_data_seek() может быть использована только с mysql_query(), но не с mysql_unbuffered_query().

Смотрите также

  • mysql_query() - Посылает запрос MySQL
  • mysql_num_rows() - Возвращает количество рядов результата запроса
  • mysql_fetch_row() - Обрабатывает ряд результата запроса и возвращает массив с числовыми индексами
  • mysql_fetch_assoc() - Возвращает ряд результата запроса в качестве ассоциативного массива
  • mysql_fetch_array() - Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба
  • mysql_fetch_object() - Обрабатывает ряд результата запроса и возвращает объект