mysqli_result::data_seek

mysqli_data_seek

(PHP 5, PHP 7, PHP 8)

mysqli_result::data_seek -- mysqli_data_seekDéplace le pointeur interne de résultat

Description

Style orienté objet

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

Style procédural

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

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.

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

add a note add a note

User Contributed Notes 1 note

up
32
kaisellgren at gmail dot com
15 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