Se connecter avec
S'enregistrer | Connectez-vous

probleme nombre de retour requete sql

Dernière réponse : dans Programmation

salut à tous.

j'ai un problème en php avec une requete sql.

je fais ma requete, il m'indique le bon nombre de résultats ($res entrees) mais quand je met en forme dans un tableau, il me retourne sustematiquement et quelque soit la requete un nombre de lignes egal au nombre de résultats ($res entrees) moins un !!

voici un bout de code :
  1. $requete12="SELECT nom,
  2. prenom,
  3. phpl_joueurs.id as id_joueur,
  4. matchs,
  5. remp,
  6. tps,
  7. phpl_effectif.id,
  8. AVG(note),
  9. votes.id_effectif
  10. FROM phpl_joueurs, phpl_effectif, phpl_compo, phpl_equipes, phpl_matchs, votes
  11. WHERE phpl_joueurs.id=phpl_effectif.id_joueur
  12. AND phpl_effectif.id=phpl_compo.id_effectif
  13. AND votes.id_effectif=phpl_compo.id_effectif
  14. AND phpl_compo.id_match='$id_match'
  15. AND votes.id_match='$id_match'
  16. AND phpl_equipes.id=phpl_effectif.id_equipe
  17. AND phpl_matchs.id=phpl_compo.id_match
  18. AND votes.note > '0'
  19. GROUP BY votes.id_effectif
  20. ORDER BY AVG(note) DESC";
  21. $resultats12=mysql_query($requete12) or die (mysql_error());
  22. $row12 = mysql_fetch_array($resultats12);
  23. $res = MYSQL_NUM_ROWS($resultats12);
  24.  
  25. echo" $res entrees ";
  26.  
  27. if (!$row12)
  28. {echo"Pas encore de votes pour ce match.";}
  29. else
  30. {
  31.  
  32. echo"<table width=\"400\" align=\"center\">
  33. <tr>
  34. <th class=\"phpA\">Joueur</th>
  35. <th class=\"phpAc\">Moyenne</th>
  36. <th class=\"phpAc\">Tps de jeu</th>
  37. </tr>";
  38.  
  39. $i=0 ;
  40. while (
  41. $row12=mysql_fetch_array($resultats12))
  42. {
  43. echo"<tr><td valign=\"top\" align=\"left\" class=\"phpA\"> $row12[0] $row12[1] </td>
  44. <td class=\"phpAc\"><strong> $row12[7] </strong> </td>
  45. <td class=\"phpAc\"> $row12[5] min </td></tr>";
  46. $i++;
  47. }
  48. }
Lassé par la pub ? Créez un compte

bha c'est logique :o 
tu récupère la première ligne avant de compter le nombre de lignes puis tu boucles sur les autres ...

ps : pourquoi tu récupère toutes ces donnée dans ta requete si ce n'est que pour en afficher que 4 ?
et a quoi te sert ton $i ?

merci, voila donc le code "réparé" et épuré ;) 

  1. $requete12="SELECT nom,
  2. prenom,
  3. tps,
  4. AVG(note)
  5. FROM
  6. phpl_joueurs,
  7. phpl_effectif,
  8. phpl_compo,
  9. phpl_equipes,
  10. phpl_matchs,
  11. votes
  12. WHERE
  13. phpl_joueurs.id=phpl_effectif.id_joueur
  14. AND phpl_effectif.id=phpl_compo.id_effectif
  15. AND votes.id_effectif=phpl_compo.id_effectif
  16. AND phpl_compo.id_match='$id_match'
  17. AND votes.id_match='$id_match'
  18. AND phpl_equipes.id=phpl_effectif.id_equipe
  19. AND phpl_matchs.id=phpl_compo.id_match
  20. AND votes.note > '0'
  21. GROUP BY votes.id_effectif
  22. ORDER BY AVG(note) DESC";
  23. $resultats12=mysql_query($requete12) or die (mysql_error());
  24. $res = MYSQL_NUM_ROWS($resultats12);
  25.  
  26. echo" $res entrees ";
  27.  
  28. if ($res == '0')
  29. {echo"Pas encore de votes pour ce match.";}
  30. else
  31. {
  32.  
  33. echo"<table width=\"400\" align=\"center\">
  34. <tr>
  35. <th class=\"phpA\">Joueur</th>
  36. <th class=\"phpAc\">Moyenne</th>
  37. <th class=\"phpAc\">Tps de jeu</th>
  38. </tr>";
  39.  
  40. while (
  41. $row12=mysql_fetch_array($resultats12))
  42. {
  43. echo"<tr><td valign=\"top\" align=\"left\" class=\"phpA\"> $row12[0] $row12[1] </td>
  44. <td class=\"phpAc\"><strong> $row12[3] </strong> </td>
  45. <td class=\"phpAc\"> $row12[2] min </td></tr>";
  46. }
  47. echo"</table>";
  48. }
Lassé par la pub ? Créez un compte