PHP - Boucle infinie [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
20 septembre 2007
-
anas rouetbi
Messages postés
31
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
5 décembre 2008
-
Bonjour à tous,

J'ai un problème avec une boucle. J'aimerais afficher un tableau avec des info qui sont sur ma BD.
J'ai dans la table 'chrono' deux entrés. Pourtant, seule la première s'affiche et se répète à l'infini.
Ma table 'chrono' se compose de 6 champs : id, date, pilote, temps_seconde, temps_milliseconde, voiture .

J'aimerais savoir pourquoi seule la première entré s'affiche et pourquoi elle continue à l'infini.
voici mon code :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
  <title>Chrono</title>
 </head>
 <body>
  <table border="1" width="500px">
   <tr>
    <td width="25%" align="center" bgcolor="#FFFF00">DATE</td>
    <td width="25%" align="center" bgcolor="#FFFF00">PILOTE</td>
    <td width="25%" align="center" bgcolor="#FFFF00">TEMPS</td>
    <td width="25%" align="center" bgcolor="#FFFF00">VOITURE</td>
   </tr>
<?php
$host="ftpperso.free.fr";
$user="latitemumu";
$mdp="*********";
$connection=mysql_connect($host,$user,$mdp);
$db="latitemumu";
mysql_select_db($db,$connection);
$req_classement="SELECT * from chrono ORDER BY 'temps_seconde' and 'temps_milliseconde'";
$res_classement=mysql_query($req_classement,$connection);
$classement=mysql_fetch_row($res_classement);
while ($classement) {
?>
   <tr>
    <td width="25%"><?php echo $classement[1]; ?></td>
    <td width="25%"><?php echo $classement[2]; ?></td>
    <td width="25%"><?php echo $classement[3].'"'.$classement[4]; ?></td>
    <td width="25%" align="center"><img src="img/voiture/<? echo $classement[5]; ?>" /></td>
   </tr>
<?php
}
?>
  </table>
 </body>
</html>



Merci d'avance

9 réponses

Messages postés
31
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
5 décembre 2008
6
salut,
oui tas raison jaV pas fait attention.
Alors pkoi tu fais pas ca:

<?php
$host="ftpperso.free.fr";
$user="latitemumu";
$mdp="*********";
$connection=mysql_connect($host,$user,$mdp);
$db="latitemumu";
mysql_select_db($db,$connection);

$req_classement = "SELECT * from chrono ORDER BY 'temps_seconde' and 'temps_milliseconde'";
mysql_query($req_classement,$connection) or die(mysql_error());
$classement = mysql_fetch_assoc($res_classement);

do {
?>
<tr>
    <td width="25%"><?php echo $classement['date']; ?></td>
    <td width="25%"><?php echo $classement['pilote']; ?></td>
    <td width="25%"><?php echo "".$classement['temps_seconde']." ".$classement['temps_milliseconde'].""; ?></td>
    <td width="25%" align="center"><img src="img/voiture/<?php echo $classement['voiture']; ?>" /></td>
 </tr>
<?php
} while ($classement = mysql_fetch_assoc($res_classement));
?>
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 79438 internautes nous ont dit merci ce mois-ci

Messages postés
35
Date d'inscription
dimanche 26 août 2007
Statut
Membre
Dernière intervention
26 septembre 2007
9
enfin je m'y connai pas trop en php mais en c++ mais comme ces deux languages sont assez similaire je dirais que l'erreur provient de ton while.

while ($classement) => si je ne me trompe pour que ta boucle s'arrete il lui faut une condition hors la je n'en vois pas.
en gros faudrai mettre:

while ($classement != valeur)
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
20 septembre 2007
2
Et bien normalement, c'est l'existance de la varriable $classement qui est la condition. Elle vient du mysql_fetch_row, qui est sensé auto incrémenter et arrêter la boucle quand elle ne trouve plus de résultat... mais elle ne fait rien de tout ça apparement.
Messages postés
35
Date d'inscription
dimanche 26 août 2007
Statut
Membre
Dernière intervention
26 septembre 2007
9
j'ai trouvé sa je crois que sa peut t'aider :
https://www.vulgarisation-informatique.com/mysql-fetch.php
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
20 septembre 2007
2
Impec ca marche :D
Merci beaucoup. Maintenant vais essayer de comprendre tout ça comment ça marche ^^
Messages postés
31
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
5 décembre 2008
6
Salut,
essaye ca:

<tr>
    <td width="25%"><?php echo $classement['date']; ?></td>
    <td width="25%"><?php echo $classement['pilote']; ?></td>
    <td width="25%"><?php echo "".$classement['temps_seconde']." ".$classement['temps_milliseconde'].""; ?></td>
    <td width="25%" align="center"><img src="img/voiture/<? echo $classement['voiture']; ?>" /></td>
 </tr>


Ca devrait marchait en principe.
Tiens moi au courant!
Messages postés
10
Date d'inscription
jeudi 16 août 2007
Statut
Membre
Dernière intervention
20 septembre 2007
2
Ca c'est si j'utilise mysql_fetch_array ou bien que j'utilise la commande list()
Messages postés
35
Date d'inscription
dimanche 26 août 2007
Statut
Membre
Dernière intervention
26 septembre 2007
9
remplace ton while par ceci peut etre que sa peut macher?

while($classement=mysql_fetch_row($res_classement))
Messages postés
31
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
5 décembre 2008
6
Je t'en pris!
N'oubli pas de mettre ton post en etat "Resolu" ;-)
Bonne continuation