mysql_data_seek
(PHP 4, PHP 5)
mysql_data_seek — Перемещает внутренний указатель в результате запроса
Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. Смотрите также инструкцию MySQL: выбор API и соответствующий FAQ для получения более подробной информации. Альтернативы для данной функции:
- mysqli_data_seek()
PDO::FETCH_ORI_ABS
Описание
$result
, int $row_number
) : boolmysql_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() - Обрабатывает ряд результата запроса и возвращает объект