Ce face mysqli_stmt_data_seek
Funcționează doar după mysqli_stmt_store_result. Poziția începe de la 0. Următorul mysqli_stmt_fetch citește rândul de la acea poziție.
Exemplele de pe această pagină folosesc baza de date magazin, cu tabelul produse (coloanele id INT AUTO_INCREMENT, nume VARCHAR(100) NOT NULL, pret INT și stoc INT) și patru rânduri: Laptop (3200 lei, 5 buc.), Mouse (80 lei, 40 buc.), Monitor (900 lei, 0 buc.) și Tastatură (150 lei, 12 buc.). Comenzile SQL sunt explicate în secțiunea MySQL. Rezultatele au fost scrise pentru MySQL 8, pentru că exemplele au nevoie de un server de baze de date.
Parametri
| Parametru | Descriere |
|---|---|
$statement |
Interogarea pregătită, cu rezultatul păstrat. |
$offset |
Poziția rândului, de la 0. |
Ce returnează
Nimic.
Exemple
Exemplul 1: Ultimul rând al rezultatului
<?php
$conn = mysqli_connect("localhost", "ana", "parola_ta", "magazin");
mysqli_set_charset($conn, "utf8mb4");
$stmt = mysqli_prepare($conn, "SELECT nume FROM produse ORDER BY pret");
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
mysqli_stmt_bind_result($stmt, $nume);
mysqli_stmt_data_seek($stmt, mysqli_stmt_num_rows($stmt) - 1);
mysqli_stmt_fetch($stmt);
echo "Cel mai scump: $nume";
Rezultat (cu un server MySQL și tabelul produse de mai sus)
Cel mai scump: Laptop
Greșeli frecvente
- Folosești funcția fără
mysqli_stmt_store_result. Cursorul nu se mută șimysqli_stmt_fetchcontinuă de unde era.
Comenzi înrudite
mysqli_stmt_store_result: Aduce în memorie tot rezultatul unei interogări pregătite, ca să poți afla numărul de rânduri și să sari între ele.mysqli_data_seek: Mută cursorul rezultatului la un anumit rând, ca următorul fetch să înceapă de acolo.mysqli_stmt_fetch: Citește următorul rând al unei interogări pregătite în variabilele legate cu mysqli_stmt_bind_result.