Aide pour répéter requete PHP/MySQL

Résolu
sweetmemories Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -  
OufTete Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -
Tout d'abord merci à tous pour votre aide ,mon site avance...
Nouvelle demande ...
En effet, j'affiche les résultats de match dans un tableu.
Je fais mes requettes sur des tables differentes pour afficher les score (table tournois) et afficher une photo du joueur (table users).
La ca fonctionne trés bien à présent !
Mais voilà, pour afficher les scores avec des entetes du type :
le 1er est ...
le 2e est ...
Le 3e est ...
etc...
je fais celà:

$req_general = reqmysql("SELECT COUNT(tournois.joueur) AS partie, SUM(tournois.points) AS points, SUM(tournois.jetons) AS jetons, SUM(tournois.recave) AS recave, tournois.joueur, users.avatar, users.id, users.pseudo FROM tournois LEFT JOIN
users ON users.pseudo=tournois.joueur WHERE cg=2007 GROUP BY tournois.joueur ORDER BY points DESC, jetons DESC LIMIT 0,1");

while($reponse_general = mysql_fetch_array($req_general))
{
$resultat=$reponse_general['jetons']/$reponse_general['partie'];
$resultat2 = round($resultat, 2);
$jetons = $reponse_general['jetons']/4;

echo "
Le 1er est :
etc...

$req_general = reqmysql("SELECT COUNT(tournois.joueur) AS partie, SUM(tournois.points) AS points, SUM(tournois.jetons) AS jetons, SUM(tournois.recave) AS recave, tournois.joueur, users.avatar, users.id, users.pseudo FROM tournois LEFT JOIN
users ON users.pseudo=tournois.joueur WHERE cg=2007 GROUP BY tournois.joueur ORDER BY points DESC, jetons DESC LIMIT 1,1");

while($reponse_general = mysql_fetch_array($req_general))
{
$resultat=$reponse_general['jetons']/$reponse_general['partie'];
$resultat2 = round($resultat, 2);
$jetons = $reponse_general['jetons']/4;

echo "
Le 2e est :
etc...

$req_general = reqmysql("SELECT COUNT(tournois.joueur) AS partie, SUM(tournois.points) AS points, SUM(tournois.jetons) AS jetons, SUM(tournois.recave) AS recave, tournois.joueur, users.avatar, users.id, users.pseudo FROM tournois LEFT JOIN
users ON users.pseudo=tournois.joueur WHERE cg=2007 GROUP BY tournois.joueur ORDER BY points DESC, jetons DESC LIMIT 2,1");

while($reponse_general = mysql_fetch_array($req_general))
{
$resultat=$reponse_general['jetons']/$reponse_general['partie'];
$resultat2 = round($resultat, 2);
$jetons = $reponse_general['jetons']/4;

echo "
Le 3e est :
etc ...

et ainsi de suite pour les 10 premiers joueurs...

Mais à présent puis-je automatiser cela car si je veux afficher 40 joueurs par exemple il me faut autant de lignes?
Bien sur ça alourdit le code considérablement et de plus, vraiment pas pratique en cas de changement de code car autant de lignes a modifier...

J'espère avoir été assez clair...

Si vous avez une idée merci d'avance.
A voir également:

2 réponses

OufTete Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   10
 
Salut,

Suffit de crée un boucle qui agit sur l'ensemble.... ;)

<?php
$i = 0; 
while($i =< 39) { //Ici, 39 pour t'afficher 40 joueurs....
	$req_general = reqmysql("SELECT COUNT(tournois.joueur) AS partie, SUM(tournois.points) AS points, SUM(tournois.jetons) AS jetons, SUM(tournois.recave) AS recave, tournois.joueur, users.avatar, users.id, users.pseudo FROM tournois LEFT JOIN
	users ON users.pseudo=tournois.joueur WHERE cg=2007 GROUP BY tournois.joueur ORDER BY points DESC, jetons DESC LIMIT " . $i . ",1");
	
	while($reponse_general = mysql_fetch_array($req_general))
	{
	$resultat=$reponse_general['jetons']/$reponse_general['partie'];
	$resultat2 = round($resultat, 2);
	$jetons = $reponse_general['jetons']/4;

	echo 'Le ' . $i+1 . 'e est:';
	}
}
?>


Logiquement sa devrais le faire comme sa !
1
sweetmemories Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   4
 
Merci et bravo c'est exactement ça sans oublier le $i++ à la fin !
Merci pour votre aide !
0
OufTete Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   10
 
Il y a pas de quoi ;)

P.S: désolé pour ce petit oubli :s
0