>(PHP 5, PHP 7, PHP 8)
mysqli_result::data_seek -- mysqli_data_seek — Déplace le pointeur interne de résultat
Description
Style orienté objet
public
mysqli_result::data_seek(int
$offset): bool
mysqli_data_seek(mysqli_result
$result, int
$offset): bool
Liste de paramètres
-
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).
Valeurs de retour
Cette fonction retourne true en cas de succès ou false si une erreur survient.
Exemples
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
Notes
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().
Voir aussi
- mysqli_store_result() - Transfère un jeu de résultats à partir de la dernière requête
- mysqli_fetch_row() - Récupère une ligne de résultat sous forme de tableau indexé
- mysqli_fetch_array() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif, numérique ou les deux
- mysqli_fetch_assoc() - Récupère la ligne suivante d'un ensemble de résultats sous forme de tableau associatif
- mysqli_fetch_object() - Retourne la ligne suivante d'un ensemble de résultats sous forme d'objet
- mysqli_query() - Exécute une requête sur la base de données
- mysqli_num_rows() - Retourne le nombre de lignes dans le jeu de résultats