Posez votre question Signaler

PHP - Boucle infinie [Résolu]

Anah 10Messages postés 16 août 2007Date d'inscription - Dernière réponse le 26 août 2007 à 16:41
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
Lire la suite 

PHP - Boucle infinie »

9 réponses
Réponse
+3
moins plus
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));
?>
Configuration: Windows XP Firefox 2.0.0.6
Ajouter un commentaire
Réponse
+1
moins plus
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)
Ajouter un commentaire
Réponse
+1
moins plus
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.Configuration: Mac OS X Firefox 2.0.0.6
Ajouter un commentaire
Réponse
+1
moins plus
j'ai trouvé sa je crois que sa peut t'aider :
http://www.vulgarisation-informatique.com/mysql-fetch.php
Ajouter un commentaire
Réponse
+1
moins plus
Impec ca marche :D
Merci beaucoup. Maintenant vais essayer de comprendre tout ça comment ça marche ^^Configuration: Mac OS X Firefox 2.0.0.6
Ajouter un commentaire
Réponse
+0
moins plus
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!Configuration: Windows XP Firefox 2.0.0.6
Ajouter un commentaire
Réponse
+0
moins plus
Ca c'est si j'utilise mysql_fetch_array ou bien que j'utilise la commande list()Configuration: Mac OS X Firefox 2.0.0.6
Ajouter un commentaire
Réponse
+0
moins plus
remplace ton while par ceci peut etre que sa peut macher?

while($classement=mysql_fetch_row($res_classement))
Ajouter un commentaire
Réponse
+0
moins plus
Je t'en pris!
N'oubli pas de mettre ton post en etat "Resolu" ;-)
Bonne continuationConfiguration: Windows XP Firefox 2.0.0.6
Ajouter un commentaire
Ce document intitulé « PHP - Boucle infinie » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook