Les Allergies
Alimentaires
Posez votre question Signaler

Aide pour répéter requete PHP/MySQL [Résolu]

sweetmemories 49Messages postés 19 juin 2005Date d'inscription 4 mars 2011Dernière intervention - Dernière réponse le 22 janv. 2007 à 18:22
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.
Lire la suite 

Aide pour répéter requete PHP/MySQL »

3 réponses
Réponse
+0
moins plus
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 !
Ajouter un commentaire
Réponse
+0
moins plus
Merci et bravo c'est exactement ça sans oublier le $i++ à la fin !
Merci pour votre aide !
OufTete- 22 janv. 2007 à 18:22
Il y a pas de quoi ;)

P.S: désolé pour ce petit oubli :s
Ajouter un commentaire
Ce document intitulé « Aide pour répéter requete PHP/MySQL » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?