PHP gestion Classement

PHP gestion Classement - PHP - Programmation

Marsh Posté le 25-06-2011 à 10:42:42    

Bonjour,
 
je bute sur la gestion du classement
j'ai 3 tables qui donnent en gros:
 
joueur: idx - nom
classpartie: id_partie - joueur - points - place
classement: joueur - points_saison - place_saison  
 
 
 

Code :
  1. <table width="400" align="center" border="1">
  2. <tr> 
  3. <th width="91"> <div align="center">joueur </div></th>
  4. <th width="160"> <div align="center">points </div></th>
  5. <th width="160"> <div align="center">place </div></th>
  6. </tr>
  7. <?
  8. //defini boucle joueurs
  9. $query = "SELECT MAX(idx) FROM joueurs ";
  10.     $result = mysql_query ($query) or die ("La requete SQL a echoue !" );
  11.     $cRes = mysql_fetch_array ($result);
  12. $line = $_GET["Line"];
  13.   if($line == 0){$line=$cRes[0];}
  14.   for($i=1;$i<=$line;$i++)
  15.   {
  16. ?>
  17. <tr>
  18. //JOUEURS  
  19. <td><input type="text" name="joueur<?=$i;?>" value= "<?php echo "$i"; ?>" size="5"></td>
  20. //POINTS
  21. <td>
  22. <input type="text" name="points<?=$i;?>" size="2" maxlength="4" value="<?php
  23. {
  24. $queryp = "SELECT points FROM classpartie WHERE joueur = $i AND idxpartie = $idxpartie";
  25.     $resultp = mysql_query ($queryp) or die ("La requete SQL a echoue !" );
  26.     $cResp = mysql_fetch_row ($resultp);
  27. $cResp = $cResp[0];
  28. $querypp = "SELECT MAX(points) FROM classement WHERE joueur = $i ";
  29.     $resultpp = mysql_query ($querypp) or die ("La requete SQL a echoue !" );
  30.     $cRespp = mysql_fetch_row ($resultpp);
  31. $cRespp = $cRespp[0];
  32. //points classement + points partie en cours
  33. $pts= $cRespp+$cResp;
  34. echo $pts;
  35. } ;?>" />
  36. </td>
  37. //PLACE   
  38. <td>
  39. <input type="text" name="place<?=$i;?>" size="2" maxlength="2" value="<?php
  40. {
  41. $req = mysql_query('select * from classement where points ="'.$pts.'"');
  42. $nbrang = mysql_num_rows($req);
  43. $rang = 0;
  44. $rang = $nbrang + 1;
  45. echo $rang;
  46. } ;?>" /></td>
  47. </tr>
  48. <?
  49.   }
  50.   ?>
  51. </table>


 
Ca fait 2 jours que je charche et je n'ai pas obtenu mieux que ca.
Je n'ai que 40 joueurs dans ma table et j'obtiens des resultats abberant du genre plusieurs joueurs qui sont a la 1091è place...
 
http://data.imagup.com/9/1123656043.JPG
Si quelqu'un a la courage de m'aider a corriger tout ca
Merci


Message édité par chichen le 25-06-2011 à 11:34:14
Reply

Marsh Posté le 25-06-2011 à 10:42:42   

Reply

Marsh Posté le 25-06-2011 à 19:04:32    

j'ai finalement réussi a trouver une partie de la solution!
J'obtiens bien le classement seulement j'ai un problème de doublon; si 2 joueurs ont le même nombre de points ils ont également la même place.
 
Par exemple j'ai plusieurs joueurs avec 0 points qui sont tous a la place 42 (vu qu'il ya 42 joueurs).j'aimerai incrementer ces joueurs en utilisant par exemple leur id.
 

Code :
  1. //PLACE
  2.     <td>
  3. <input type="text" name="place<?=$i;?>" size="25" maxlength="2" value="<?php
  4. {
  5. $reqclassement = mysql_query ("SELECT COUNT(*) AS place FROM classement WHERE numpartie = $num AND points >='" . $pts . "'" );
  6. $classement = mysql_fetch_array ($reqclassement);
  7. echo $classement['place'];
  8. } ;?>" /></td>


 
 
Si quelqu'un n'as ne serait ce un debut de piste  Merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed