Forum und email
mysql_data_seek

mysql_data_seek

(PHP 3, PHP 4, PHP 5)

mysql_data_seek -- Przesuwa wewnętrzny wskaźnik wyniku

Opis

bool mysql_data_seek ( resource 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.

Parametry

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.

Zwracane wartości

Zwraca TRUE w przypadku sukcesu, FALSE w przypadku porażki.

Przykłady

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);
?>

Notatki

Notatka: Funkcja mysql_data_seek() może być uzyta tylko w połączeniu z mysql_query(), a nie z mysql_unbuffered_query().