mysqli_result::data_seek

mysqli_data_seek

(PHP 5, PHP 7, PHP 8)

mysqli_result::data_seek -- mysqli_data_seekVerschiebt den Ergebniszeiger auf die angegebene Zeile

Beschreibung

Objektorientierter Stil

public mysqli_result::data_seek(int $offset): bool

Prozeduraler Stil

mysqli_data_seek(mysqli_result $result, int $offset): bool

Die Funktion mysqli_data_seek() verschiebt den Ergebniszeiger auf eine beliebige durch offset angegebene Zeile der Ergebnismenge.

Parameter-Liste

result

Nur bei prozeduralem Aufruf: Ein von mysqli_query(), mysqli_store_result(), mysqli_use_result() oder mysqli_stmt_get_result() zurückgegebenes mysqli_result-Objekt.

offset

Der Zeilenversatz. Muss zwischen null und der Gesamtzahl der Zeilen minus eins liegen (0..mysqli_num_rows() - 1).

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Beispiele

Beispiel #1 mysqli::data_seek()-Beispiel

Objektorientierter Stil

<?php

mysqli_report
(MYSQLI_REPORT_ERROR MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost""my_user""my_password""world");

$query "SELECT Name, CountryCode FROM City ORDER BY Name";
$result $mysqli->query($query);

/* Zu Zeile 401 springen */
$result->data_seek(400);

/* Eine einzelne Zeile abrufen */
$row $result->fetch_row();

printf("Stadt: %s  Ländercode: %s\n"$row[0], $row[1]);

Prozeduraler Stil

<?php

mysqli_report
(MYSQLI_REPORT_ERROR MYSQLI_REPORT_STRICT);
$link mysqli_connect("localhost""my_user""my_password""world");

$query "SELECT Name, CountryCode FROM City ORDER BY Name";

$result mysqli_query($link$query);

/* Zu Zeile 401 springen */
mysqli_data_seek($result400);

/* Eine einzelne Zeile abrufen */
$row mysqli_fetch_row($result);

printf ("Stadt: %s  Ländercode: %s\n"$row[0], $row[1]);

Die obigen Bespiele erzeugen folgende Ausgabe:

Stadt: Benin City  Ländercode: NGA

Beispiel #2 Anpassen des Ergebniszeigers beim Iterieren

Wenn über eine Ergebnismenge iteriert wird, ist diese Funktion nützlich, um eine benutzerdefinierte Reihenfolge festzulegen oder um den Ergebniszeiger bei mehrfacher Iteration zurückzusetzen.

<?php

mysqli_report
(MYSQLI_REPORT_ERROR MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost""my_user""my_password""world");

$query "SELECT Name, CountryCode FROM City ORDER BY Name LIMIT 15,4";
$result $mysqli->query($query);

/* Die Ergebnismenge in umgekehrter Reihenfolge durchlaufen */
for ($row_no $result->num_rows 1$row_no >= 0$row_no--) {
    
$result->data_seek($row_no);

    
/* Eine einzelne Zeile abrufen */
    
$row $result->fetch_row();

    
printf("Stadt: %s  Ländercode: %s\n"$row[0], $row[1]);
}

/* Den Zeiger auf den Anfang der Ergebnismenge zurücksetzen */
$result->data_seek(0);

print 
"\n";

/* Die gleiche Ergebnismenge erneut durchlaufen */
while ($row $result->fetch_row()) {
    
printf("Stadt: %s  Ländercode: %s\n"$row[0], $row[1]);
}

Die obigen Bespiele erzeugen folgende Ausgabe:

Stadt: Acmbaro  Ländercode: MEX
Stadt: Abuja  Ländercode: NGA
Stadt: Abu Dhabi  Ländercode: ARE
Stadt: Abottabad  Ländercode: PAK

Stadt: Abottabad  Ländercode: PAK
Stadt: Abu Dhabi  Ländercode: ARE
Stadt: Abuja  Ländercode: NGA
Stadt: Acmbaro  Ländercode: MEX

Anmerkungen

Hinweis:

Diese Funktion kann nur bei gepufferten Ergebnissen verwendet werden, die mit einer der Funktionen mysqli_store_result(), mysqli_query() oder mysqli_stmt_get_result() gewonnen wurden.

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
32
kaisellgren at gmail dot com
14 years ago
This is useful function when you try to loop through the resultset numerous times.

For example:

<?php

$result
= mysqli_query($connection_id,$query);

while (
$row = mysqli_fetch_assoc($result))
{
 
// Looping through the resultset.
}

// Now if you need to loop through it again, you would first call the seek function:
mysqli_data_seek($result,0);

while (
$row = mysqli_fetch_assoc($result))
{
 
// Looping through the resultset again.
}

?>
To Top