Salve a tutti
, ho da porvi un domanda, date uno sguardo al esguente codice:
codice:
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno())
{
printf("Connect failed: %s", mysqli_connect_error());
exit();
} $query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf ("%s (%s)", $row["Name"], $row["CountryCode"]);
}
/*ciclo senza stampa perchè il puntatore dell'oggetto result è già a null a causa del ciclo precedente*/
while ($row = $result->fetch_assoc()) {
printf ("%s (%s)", $row["Name"], $row["CountryCode"]);
}
/* free result set */
$result->close();
}
/* close connection */
$mysqli->close();?>
Come vedete ci sono due cicli che agiscono sullo stesso $result, chiaramente il secondo non mi stamperà nulla perchè $result ha già subito un ciclo con fetch->assoc che lo ha portato a puntare a null. Domanda: esiste una funzione che mi riporta il puntatore di $result allo stato iniziale? oppure l'unica via è:
codice:
$result = $mysqli->query($query);
$dummy_result = $result;
usando $dummy_result per i cicli? (in teoria essendo result una classe e avendo metodi e attributi fetch_assoc non dovrebbe far altro che incrementare un attributo puntatore dell'oggetto $result quindi a rigor di logica metodo che mi rimetta il puntatore nella prima posizione dovrebbe esserci -_-' bho!)
Grazie a tutti per l'attenzione