Mysql n'affiche pas la derniere entrée

[Résolu]
Signaler
Messages postés
98
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
16 mars 2009
-
Messages postés
98
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
16 mars 2009
-
Bonsoir !

Je suis en train de me prendre la tête, parceque mysql ne m'affiche pas la derniere entrée d'une table.
Je lui demande pourtant de m'afficher toutes les entrées. Par exemple l'entrée 39 n'apparaitra que quand j'aurai mis la 40, et la 40 n'apparaitra que quand j'aurai mis la 41...

Voici mon code :
...
$retour = mysql_query("SELECT * FROM juicy ORDER BY nom DESC");
 $donnees = mysql_fetch_array($retour) or die("Impossible d'interroger la base de données");

while ($donnees = mysql_fetch_array($retour) )
{
?>
    [juicy.php?id=<?php echo $donnees['id']; ?> <?php echo $donnees['nom']; ?>] |
    <?php
}
mysql_close(); // Déconnexion de MySQL

?>

Merci pour votre aide

2 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

tu fais deux fois mysql_fetch_array ().
Cette fonction va chercher la ligne courante, et fais un next () (c'est à dire, se déplace sur la ligne suivante).
Etant donné que ta requête va chercher tes enregistrements du dernier au premier :
 $donnees = mysql_fetch_array($retour) or die("Impossible d'interroger la base de données"); // ICI, tu viens d'aller chercher la dernière ligne! Tu l'assignes à une variable que tu n'afficheras jamais, et mysql_fetch_array passe à la ligne suivante, donc, à l'avant dernière.

while ($donnees = mysql_fetch_array($retour) ) // là, tu fais ce qu'il faut : une boucle sur le mysql_fetch_array (). Mais comme le pointeur est déjà sur la 2de ligne...la 1ère est perdue à jamais.
{
?>
    [juicy.php?id=<?php echo $donnees['id']; ?> <?php echo $donnees['nom']; ?>] |
    <?php
}
Bref, vire moi ce 1er mysql_fetch_array () qui ne sert absolument à rien.
Messages postés
98
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
16 mars 2009

Merci beaucoup ! Je comprend mon erreur :s
Ca marche correctement désormé.