Mysql n'affiche pas la derniere entrée

Résolu
setasan9 Messages postés 98 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 16 mars 2009 - 6 mars 2007 à 21:30
setasan9 Messages postés 98 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 16 mars 2009 - 7 mars 2007 à 17:15
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 mars 2007 à 22:05
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.
3
setasan9 Messages postés 98 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 16 mars 2009
7 mars 2007 à 17:15
Merci beaucoup ! Je comprend mon erreur :s
Ca marche correctement désormé.
0
Rejoignez-nous