Page 1 sur 1

Boucle php

Posté : 20 mai 2006, 10:34
par Arno76
Bonjour,

Je souhaiterai faire une boucle php affin que lon puisse voir les position de chaque joueurs j ai trouver quelque truc sur le net mes rien ne va.
Pouvez vous m aider merci.

Voici la page du classement :
<?php
	 print "<table border=\"0\" align=\"center\">
<tr>
   <td valign=\"top\"><div align=\"center\">
<BR><P align=\"center\"><B>Classement des joueurs:<B/><BR><BR/>
| <A href=\"#\"><font color=black> Points <Font/></A> | <A href=\"#\"><font color=black> Points <font/></A> |</P>
<table  width=\"300\" width=\"0\" border=\"1\" cellspacing=\"1\" cellpadding=\"1\" >
<tr>
<td><div align=\"center\"><u>Place</u></div></td>
<td><div align=\"center\"><u>Pseudo</u></div></td>
<td><div align=\"center\"><u>Points</u></div></td>
</tr>";

$requete = "SELECT *FROM `pds_bannieres_membres`  ORDER BY `credits`  DESC LIMIT 0, 100";
$result = mysql_query($requete);

while ($num = mysql_fetch_array($result)) {

$pseudo = $num['pseudo'];
$credits = $num['credits'];

$lien_html = <<<EOF

 <tr>
 <td><div align="center">{$place}</div></td>
 <td><div align="center">{$pseudo}</div></td>
 <td><div align="center">{$credits}</div></td>
 </tr>

EOF;
echo $lien_html;
} 
?>
Merci a vous :D

Posté : 20 mai 2006, 10:46
par Manio 54
Il y a un message d'erreur ?

Posté : 20 mai 2006, 10:50
par Arno76
non aucun message d erreur. Mes je ne c est pas comment mettre en place une boucle... qui afficherai la position:

Postion | Pseudo | Points
1 | Arno 76| 10

Et la je ne dispose pas de la boucle positon.

Posté : 20 mai 2006, 10:52
par Manio 54
Sa me semble tout simple, tu inclus sa dans ta requete mySQL avec un ORDER BY points DESC, non ?

Posté : 20 mai 2006, 10:55
par Arno76
Voila se que j ai trouvai mes je n arrive pas a mettre ca en place.
<?php
$i=1;
while($donnees=mysql_fetch_object($retour))
{
?>

<tr>
<td><? echo $i; ?></td>
<td><? echo $donnees->pseudo; ?></td>
<td><? echo $donnees->processeur; ?></td>
<td><? echo $donnees->frequencedp; ?></td>
<td><? echo $donnees->frequencear; ?></td>
<td><? echo $donnees->voltage; ?></td>
</tr>

<?php
$i=$i+1;
}
?>

Posté : 20 mai 2006, 11:00
par Manio 54
Essaye la requete que je t'ai donner avant.

Posté : 20 mai 2006, 11:02
par Arno76
le classement fonctione correctement je veut rajouter la fonction si le joueurs et en tete du classement qu il y est ecrit 1 devant son pseudo si il est en deuxieme qu il y et ecrit 2 jusqu a 100... :D

Posté : 20 mai 2006, 11:12
par Manio 54
Tu mets une variable dans ta boucle et tu l'incrémente.

Posté : 20 mai 2006, 11:13
par Arno76
Merci pout ton aide mes je fait comment ? :D

Posté : 20 mai 2006, 11:17
par Manio 54
//tu fais ta requete 
$place = 1;
while($donnees = mysql_fetch_array($reponse)){ //ta boucle

echo $donnees['nom']; //etc.
echo $place;
$place++;
}
Je pense que c'est sa, maintenant au plus doué de verifier

Posté : 20 mai 2006, 11:18
par Cyrano
Arno76, je te l'ai dit hier soir, relaxe et prends le temps d'analyser la réponse qu'on te fait avant de sauter tout de suite sur la question suivante. Sois logique : chaque ligne va être ajoutée tour après tour de la boucle. Il est dès lors très facile d'ajouter un élément qui va indiquer le rang : le premier sera à 1, au tour suivant, il devra être à 2 et ainsi de suite tant qu'il y aura des lignes à afficher.

Donc, de quoi as-tu besoin ? D'une variable dont la valeur de départ (avant la boucle) sera à 1 et que tu incrémenteras à chaque tour en fin de boucle juste avant de fermer l'accolade.

Posté : 20 mai 2006, 11:25
par Arno76
Oui j ai compris mes je ne c est pas comment doit on mettre ca en place et ca je ne comprend pas trop j ai jamais effectuer de truc de se genre...

Posté : 20 mai 2006, 11:30
par Cyrano
Regarde le code exemple qu'a mis Manio54 : c'est très exactement ce que je viens de t'expliquer.