Page 1 sur 1

mysql_fetch_array

Posté : 20 mai 2005, 13:13
par Invité
Hello à tous.
Je prends dans ma table plusieurs lignes.
Lorsque je veux les afficher, je me rends compte que la première ligne est ignorée (le rang 0), et que ça m'affiche en premier le rang 1 (donc la seconde ligne) de mon résultat.

Voici ce que je fais :

Code : Tout sélectionner

$index = array(); $row = mysql_fetch_array($page, MYSQL_BOTH); echo $row["texte"]; do { $index[] = $row["texte"];} while ( $row = mysql_fetch_array($page)) ; foreach($index as $key => $texte) { echo "<strong>Page ".$key."</strong><br />$texte<br /><br />\n";}
Quelqu'un voit-il une explication à mon pb ?

Re: mysql_fetch_array

Posté : 20 mai 2005, 14:24
par zeus
$row = mysql_fetch_array($page, MYSQL_BOTH); // tu sélectionne le rang 0
...
while ( $row = mysql_fetch_array($page)) ;

Dans la 1ere ligne tu récupère le rang 0

Dans le while tu récupère toutes les lignes qui restent, soit de la ligne 1 à la dernière ligne !!!!

Posté : 20 mai 2005, 14:30
par zeus
Je me permet de revenir car je trouve que ton code est pas très optimisé !!!

tu parcours un tableau pour créer un tableau que tu parcours pour l'afficher ... le tableau intermédaire est en trop !!
$index = array();
$row = mysql_fetch_array($page, MYSQL_BOTH);
echo $row["texte"];

for ($i = 1; $row = mysql_fetch_array($page) ; $i++) {
  echo "<strong>Page ".$i."</strong><br />$texte<br /><br />\n";
}

Posté : 20 mai 2005, 14:48
par Invité
impeccable ça fonctionne :)
Merci bcp !