(PHP 4, PHP 5)
mysql_data_seek — Przesuwa wewnętrzny wskaźnik wyniku
$wynik
, int $numer_wiersza
)mysql_data_seek() przesuwa wewnętrzny wskaźnik wiersza wyniku operacji MySQL skojarzony z podanym identyfikatorem wyniku na podany numer wiersza. Następne wywołanie MySQLowej funkcji pobierającej, takiej jak mysql_fetch_assoc() zwróci ten wiersz.
row_number
zaczyna się od 0. Parametr
row_number
powinien być wartością z zakresu od 0 do
mysql_num_rows() - 1. Jednakże jeśli zbiór wyników
jest pusty ( mysql_num_rows() == 0), przesunięcie na pozycję 0
zawiedzie i wygeneruje ostrzeżenie
E_WARNING,
mysql_data_seek() zwróci FALSE
.
wynik
Wynik w postaci zmiennej typu resource, które jest przetwarzane. Wynik ten pochodzi z wywołania funkcji mysql_query().
row_number
Pożądany numer wiersza dla nowego wskaźnika wyniku.
Zwraca TRUE
w przypadku powodzenia, FALSE
w
przypadku błędu.
Przykład #1 Przykład mysql_data_seek()
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Nie można się połączyć: ' . mysql_error());
}
$db_selected = mysql_select_db('sample_db');
if (!$db_selected) {
die('Nie można wybrać bazy: ' . mysql_error());
}
$query = 'SELECT last_name, first_name FROM friends';
$result = mysql_query($query);
if (!$result) {
die('Błędne zapytanie: ' . mysql_error());
}
/* pobieramy wiersze w odwrotnej kolejności */
for ($i = mysql_num_rows($result) - 1; $i >=0; $i--) {
if (!mysql_data_seek($result, $i)) {
echo "Nie można przejść do wiersza $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);
?>
Informacja:
Funkcja mysql_data_seek() może być uzyta tylko w połączeniu z mysql_query(), a nie z mysql_unbuffered_query().