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