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