(PHP 5, PHP 7, PHP 8)
mysqli_result::data_seek -- mysqli_data_seek — Déplace le pointeur interne de résultat
Style orienté objet
Style procédural
La fonction mysqli_data_seek() déplace le
pointeur interne de résultat associé au jeu de résultat représenté
par result
, en le faisant pointer sur
la ligne spécifiée par offset
.
result
Style procédural uniquement : Un objet mysqli_result retourné par mysqli_query(), mysqli_store_result(), mysqli_use_result(), ou mysqli_stmt_get_result().
offset
Le décalage de la ligne. Le paramètre offset
doit être
compris entre zéro et mysqli_num_rows() -
1 (0..mysqli_num_rows() - 1).
Exemple #1 Exemple avec mysqli::data_seek()
Style orienté objet
<?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);
/* Recherche la ligne 401 */
$result->data_seek(400);
/* Récupération de cette ligne */
$row = $result->fetch_row();
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);
?>
Style procédural
<?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);
/* Recherché la ligne 401 */
mysqli_data_seek($result, 400);
/* Récupération de cette ligne */
$row = mysqli_fetch_row($result);
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);
Les exemples ci-dessus vont afficher :
Ville: Benin City Code Pays: NGA
Exemple #2 Ajustement du pointeur de résultat lors de l'itération
Cette fonction peut être utile lors de l'itération sur l'ensemble des résultats pour imposer un ordre personnalisé ou pour rembobiner l'ensemble des résultats lors d'itérations multiples.
<?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);
/* Interroger l'ensemble des résultats dans l'ordre inverse */
for ($row_no = $result->num_rows - 1; $row_no >= 0; $row_no--) {
$result->data_seek($row_no);
/* Récupération de cette ligne */
$row = $result->fetch_row();
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);
}
/* Remise à zéro du pointeur au début de l'ensemble de résultats */
$result->data_seek(0);
print "\n";
/* Interroger à nouveau le même ensemble de résultats */
while ($row = $result->fetch_row()) {
printf("Ville: %s Code Pays: %s\n", $row[0], $row[1]);
}
Les exemples ci-dessus vont afficher :
Ville: Acmbaro Code Pays: MEX Ville: Abuja Code Pays: NGA Ville: Abu Dhabi Code Pays: ARE Ville: Abottabad Code Pays: PAK Ville: Abottabad Code Pays: PAK Ville: Abu Dhabi Code Pays: ARE Ville: Abuja Code Pays: NGA Ville: Acmbaro Code Pays: MEX
Note:
Cette fonction ne peut être utilisée qu'avec des résultats obtenus avec la fonction mysqli_store_result(), mysqli_query() ou mysqli_stmt_get_result().