setasan9
Messages postés98Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention16 mars 2009
-
6 mars 2007 à 21:30
setasan9
Messages postés98Date d'inscriptionlundi 14 juin 2004StatutMembreDernière intervention16 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
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 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.