PHP - Boucle infinie

Résolu
Anah Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
anas rouetbi Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

9 réponses

anas rouetbi Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   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
mik@ Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   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)
1
Anah Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   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.
1
mik@ Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   9
 
j'ai trouvé sa je crois que sa peut t'aider :
https://www.vulgarisation-informatique.com/mysql-fetch.php
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Anah Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   2
 
Impec ca marche :D
Merci beaucoup. Maintenant vais essayer de comprendre tout ça comment ça marche ^^
1
anas rouetbi Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   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!
0
Anah Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   2
 
Ca c'est si j'utilise mysql_fetch_array ou bien que j'utilise la commande list()
0
mik@ Messages postés 35 Date d'inscription   Statut Membre Dernière intervention   9
 
remplace ton while par ceci peut etre que sa peut macher?

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