Bourinho Posté 22 Juin 2006 Partager Posté 22 Juin 2006 Salut... 1) C'est cool si ça marche!!! C'est déjà ça de pris! Par contre, l'affichage des deux chiffres après la virgule, je ne sais pas comment on fait (ça doit être par défaut chez moi... ) 2) Je viens de m'apercevoir d'une boulette dans cette requête... le max au début ne sert à rien normalement!!! C'est peut être ça qui la faisait bugger! 3)Normalement, elle devrait fonctionner sans groupe by... mais bon, y a peut être une boulette! Par contre, si tu veux vraiment connaitre les raisons des erreurs SQL, fais tes requêtes comme suit : $Resultat=mysql_query($TaRequete) or die(mysql_error()); en phase de production, c'est super utile...après quand ça marche, tu peux le virer... Voilà... PS : Plus de 2000 lectures pour ce fil!!! Doit pas y avoir énormément de post avec une telle statistique!!!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 22 Juin 2006 Auteur Partager Posté 22 Juin 2006 (modifié) Salut, et oui plus de 2000 lectures , bientôt on va pouvoir editer un livre" php sql pour les footeux" Bon j'ai mis ton code pour voir les erreurs dans ma requête et çà m'a mis çà : Unknown column 'tablunion.IDcompetition' in 'field list' Donc j'ai enlever une ligne qui faisait appel a tablunion.IDcompetition et çà a marché ! Juste encore le problème d'arrondi a 2 chiffres apres la virgule... Voilà faut que je creuse encore un peu pour faire afficher la colonne de droite mais çà doit être bon (je pense copier coller la requête mais inverser les IdJoueur (1 par 2) ... et après va falloir passer à la dernière requête (étape 4) : 4/ page RECORDS (allez bourinho on y est presque ... lol !) merci encore Modifié 22 Juin 2006 par spamyx Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 23 Juin 2006 Partager Posté 23 Juin 2006 (modifié) Salut, pour les tableaux "records", je te propose ça... J'ai pas testé car ma base n'est plus à jour... Mais vu que t'as réussi à négocier mes dernières boulettes, tu devrais t'en tirer avec ça! (les noms doivent être assez explicites pour savoir quelle requête fait quoi ) $query1 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,SUM(matchs.victoire) AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,0 AS NbDefaites,SUM(matchs.score1) AS NbButP,SUM(matchs.score2) AS NbButC,matchs.joueur1_id AS IDjoueurFROM matchsGROUP BY IDjoueur,IDcompetition";$query2 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,0 AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,SUM(matchs.victoire) AS NbDefaites,SUM(matchs.score2) AS NbButP,SUM(matchs.score1) AS NbButC,matchs.joueur2_id AS IDjoueurFROM matchsGROUP BY IDjoueur,IDcompetition";$queryunion="$query1 UNION $query2";$queryall="SELECT tablunion.IDcompetition AS IDcompetition,SUM(tablunion.NbMatchs) AS NbMatchs,SUM(tablunion.NbVictoires) AS NbVictoires,SUM(tablunion.NbNuls) AS NbNuls,SUM(tablunion.NbDefaites) AS NbDefaites,SUM(tablunion.NbButP) AS NbButP,SUM(tablunion.NbButC) AS NbButC,tablunion.IDjoueur AS IDjoueurFROM ($queryunion) AS tablunionGROUP BY IDjoueur,IDcompetition";$queryMeilleureAttaque="SELECT *,tournoi.nom_tournoi AS competition,tablunion2.NbButP/tablunion2.NbMatchs AS NbButPPM,joueur.nom_joueur AS NomJoueurFROM ($queryall) AS tablunion2, tournoi, joueurWHERE tournoi.id=tablunion2.IDcompetition AND joueur.id=tablunion2.IDjoueurORDER BY NbButPPM DESCLIMIT 0,5";$queryMeilleureDefense="SELECT *,tournoi.nom_tournoi AS competition,tablunion2.NbButC/tablunion2.NbMatchs AS NbButCPM,joueur.nom_joueur AS NomJoueurFROM ($queryall) AS tablunion2, tournoi, joueurWHERE tournoi.id=tablunion2.IDcompetition AND joueur.id=tablunion2.IDjoueurORDER BY NbButCPMLIMIT 0,5";$queryMeilleurePourcentage="SELECT *,tournoi.nom_tournoi AS competition,tablunion2.NbVictoires/tablunion2.NbMatchs AS PourcentV,joueur.nom_joueur AS NomJoueurFROM ($queryall) AS tablunion2, tournoi, joueurWHERE tournoi.id=tablunion2.IDcompetition AND joueur.id=tablunion2.IDjoueurORDER BY PourcentV DESCLIMIT 0,5";$queryGrosEcart ="SELECT *,matchs.score1-matchs.score2 AS Ecart,joueur1.nom_joueur AS NJ1,joueur2.nom_joueur AS NJ1,equipe1.nom_equipe AS NE1,equipe2.nom_equipe AS NE2FROM matchs, joueur AS joueur1, joueur AS joueur2, equipe AS equipe1, equipe AS equipe2WHERE matchs.joueur1_id=joueur1.idAND matchs.joueur2_id=joueur2.idAND matchs.equipe1_id=equipe1.idAND matchs.equipe2_id=equipe2.idORDER BY Ecart DESCLIMIT 0,5"; A+ PS : pour le pourcentage de victoire, tu aurais probablement corrgié de toi même, ce n'est pas tablunion2.NbVictoires/tablunion2.NbMatchs AS PourcentV, mais 100*tablunion2.NbVictoires/tablunion2.NbMatchs AS PourcentV, Modifié 23 Juin 2006 par Bourinho Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 26 Juin 2006 Auteur Partager Posté 26 Juin 2006 Salut ! Super tes requêtes comme d'hab, elles fonctionnent nickel et j'arrive bien (pour l'instant ) à les customiser. J'ai vraiment l'impression de participer ! Il me reste 2 petits soucis : 1/ toujours cet histoire d'arrondi a 2 chiffres apres la virgule (je crois que je vais ouvrir un nouveau post dans le forum, peut être que quelqu'un connaît..) 2/ Je veux afficher un classement des joueurs suivant leur nombre de pts (champ POF de la table joueur). Ma requête est bonne mais comment fait t'on pour afficher la place des joueurs dans le classement comme çà (avec les chiffres 1-2-3 etc.. ): 1- bourinho (42,3pts) 2- spamyx (40,1) 3- etc.. Ma requête : requête SQL: SELECT joueur.nom_joueur, joueur.pof FROM joueur ORDER BY joueur.pof DESC LIMIT 0 , 30 Une idée ? a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 26 Juin 2006 Partager Posté 26 Juin 2006 bon, je m'immisce un peu (Bourinho a tellement répondu; c'est son sujet ). Pour l'arrondi, tu as deux solutions possibles : la fonction round(), ou la fonction number_format(). A toi de voir laquelle te convient le mieux. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 27 Juin 2006 Partager Posté 27 Juin 2006 Salut, 2/ Je veux afficher un classement des joueurs suivant leur nombre de pts (champ POF de la table joueur). Ma requête est bonne mais comment fait t'on pour afficher la place des joueurs dans le classement comme çà (avec les chiffres 1-2-3 etc.. ): 1- bourinho (42,3pts) 2- spamyx (40,1) 3- etc.. Ma requête : requête SQL: SELECT joueur.nom_joueur, joueur.pof FROM joueur ORDER BY joueur.pof DESC LIMIT 0 , 30 Tu n'a qu'a rajouter un compteur quand tu l'affiches... $cpt=1;while (...){ ...//La, tu affiches ce aui t'interesse... $cpt++;} C'est a mon avis le plus simple... et en plus ca ne doit pas etre tres couteux en ressources. Ca permettra d'etre sur d'etre a jour a chaque affichage! A+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 27 Juin 2006 Auteur Partager Posté 27 Juin 2006 Salut ! bon, je m'immisce un peu (Bourinho a tellement répondu; c'est son sujet wink.gif).Pour l'arrondi, tu as deux solutions possibles : la fonction round(), ou la fonction number_format(). A toi de voir laquelle te convient le mieux. Captain torche est de retour (je crois que tu es un des 1er à m'avoir répondu sur ce post) ! J'ai essayer ton round(), çà marche pour une valeur fixe mais je ne sais pas comment l'intégrer pour faire un arrondi sur un resultat de base de données. Prenons un exemple : Je veux afficher mon classement comme ceci : pos / nom joueur / pof 1- Bourinho 42,38 pts 2- spamyx 23,46 pts 3- torche 21,48 pts J'ai donc fait cette requête ( au passage merci Bourinho pour le tips du compteur) : <?mysql_select_db($database_ConnexionScore, $ConnexionScore);$queryPOF="SELECT joueur.nom_joueur AS NJ, joueur.pof AS POFFROM joueurORDER BY joueur.pof DESCLIMIT 0 , 30";$reponse=mysql_query($queryPOF);if ($reponse){?><table border: 1px solid black><tr><td>class</td><td>nom</td><td>pof</td></tr><?$cpt=1;while ($donnees = mysql_fetch_array($reponse) ){?><tr><td><? echo $cpt++; ?></td><td><? echo $donnees['NJ']; ?></td><td><? echo $donnees['POF']; ?></td></tr><?}?></table><?}?></body></html> Et donc je na'rrive pas à faire en sorte que mon chiffre 'POF' soit arrondi à un chiffre apres la virgule . J'ai essayé un truc du style : <? round ($donnees['POF'],1); ?> <? echo $donnees['POF']; ?> mais çà n'a rien donné une idée? merci a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 27 Juin 2006 Partager Posté 27 Juin 2006 Et si tu mettais <?php echo round($donnees['POF'], 1); ?> Ce que tu fais dans le code de ton message précédent : - Tu calcules effectivement l'arrond à un chiffre après la virgule, mais tu ne l'attribues à aucune variable, ce qui fait que PHP ne pourra rien en faire. - Tu affiches ensuite le contenu de ta variable, qui n'a pas changé entretemps. Pour faire ce que tu pensais faire, il faudrait faire comme ça : <?php$data = round ($donnees['POF'],1);echo $data;?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 27 Juin 2006 Partager Posté 27 Juin 2006 Salut, Pour ton echo cpt++; Je ne sais pas si cela marche... et je ne sais pas ce que cela fait! A ta place, je ferais plus cela : $cpt=0;while ($donnees = mysql_fetch_array($reponse) ){?><tr><td><? $cpt++;echo $cpt; ?></td><td><? echo $donnees['NJ']; ?></td><td><? echo $donnees['POF']; ?></td></tr><?} A+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
captain_torche Posté 27 Juin 2006 Partager Posté 27 Juin 2006 Techniquement, un echo $var++, affiche la valeur actuelle de la variable, et l'incrémente ensuite. Donc, il n'y a pas de souci dans le code. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 27 Juin 2006 Partager Posté 27 Juin 2006 Salut, Bon, bah, dans ce cas, c'est parfait!!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 27 Juin 2006 Auteur Partager Posté 27 Juin 2006 Oui effectivement c'est parfait ! j'ai reussi aussi pour le round() donc c'est bien je continue d'avancer ( l'objectif étant d'arriver à 3000 lectures du post ) a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 30 Juin 2006 Auteur Partager Posté 30 Juin 2006 De retour ! Je continue à bidouiller les requêtes de Maître Bourinho. J'ai réussi par exemple à calculer le nb d'équipes prises par un joueur. (exemple : pour spamyx : 18 matchs avec Lyon, 26 avec Madrid etc...) Par contre j'ai un ptit problème pour la requête de la page STATS JOUEURS. Elle marche très bien, elle permet de regrouper les résultats d'un joueur par tournoi MAIS (et oui il y a un MAIS ) j'aimerais avoir aussi en dernière ligne du tableau récapitulatif du joueur : son nombre TOTAL de matchs , son nombre total de victoires etc..; En fait une ligne recapitulatif ( sans GROUP BY IDCompetition)... Je continue a coder mais si tu es là Bourinho... a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 30 Juin 2006 Partager Posté 30 Juin 2006 (modifié) Salut, en reprenant les mêmes "sous-requêtes" qu'avant, c'est à dire : $query1 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,SUM(matchs.victoire) AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,0 AS NbDefaites,SUM(matchs.score1) AS NbButP,SUM(matchs.score2) AS NbButCFROM matchsWHERE matchs.joueur1_id=$IdJoueurGROUP BY IDcompetition";$query2 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,0 AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,SUM(matchs.victoire) AS NbDefaites,SUM(matchs.score2) AS NbButP,SUM(matchs.score1) AS NbButCFROM matchsWHERE matchs.joueur2_id=$IdJoueurGROUP BY IDcompetition";$queryunion="$query1 UNION $query2";$queryall="SELECT tablunion.IDcompetition AS IDcompetition,SUM(tablunion.NbMatchs) AS NbMatchs,SUM(tablunion.NbVictoires) AS NbVictoires,SUM(tablunion.NbNuls) AS NbNuls,SUM(tablunion.NbDefaites) AS NbDefaites,SUM(tablunion.NbButP) AS NbButP,SUM(tablunion.NbButC) AS NbButCFROM ($queryunion) AS tablunionGROUP BY IDcompetition";$query="SELECT *,tournoi.nom_tournoi AS competition,tablunion2.NbButP/tablunion2.NbMatchs AS NbButPPM,tablunion2.NbButC/tablunion2.NbMatchs AS NbButCPM,tablunion2.NbButP-tablunion2.NbButC AS Goalaverage,elimination_joueur.niveau_elimination AS ElimFROM ($queryall) AS tablunion2, tournoi, elimination_joueurWHERE tournoi.id=tablunion2.IDcompetitionAND elimination_joueur.joueur_id=$IdJoueurAND elimination_joueur.tournoi_id=tournoi.id"; ou avec les modifs evetuelles que tu as du faire si ça ne fonctionnait pas... Je pense qu'il faut faire un truc du genre : $queryDerniereLigne = "SELECT SUM(table1.NbMatchs) AS NbMatchs,SUM(table1.NbVictoires) AS NbVictoires,SUM(table1.NbDefaites) AS NbDefaites,SUM(table1.NbNuls) AS NbNuls,... (les trucs que tu veux avec les formules qui vont bien)FROM ($query) AS table1"; Normalement, ça doit être ça... Après, je sais pas ce que tu mets dans le "etc", mais je pense que tu peux y arriver... au pire, tu sais ou poster! A+ PS : Plus de 2500 lectures!!!! Modifié 30 Juin 2006 par Bourinho Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 3 Juillet 2006 Auteur Partager Posté 3 Juillet 2006 Salut !!!! Alors j'essaye de faire cette requêteDerniere Ligne mais j'obtient l'erreur suivante : Duplicate column name 'id'. Ma page php : <?php require_once('Connections/ConnexionScore.php'); ?><!DOCTYPE html PUBLIC "–//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1–strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" ><body><?$IdJoueur=1;//mysql_select_db($database_ConnexionScore, $ConnexionScore);$query1 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,SUM(matchs.victoire) AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,0 AS NbDefaites,SUM(matchs.score1) AS NbButP,SUM(matchs.score2) AS NbButCFROM matchsWHERE matchs.joueur1_id=$IdJoueurGROUP BY IDcompetition";mysql_select_db($database_ConnexionScore, $ConnexionScore);$query2 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,0 AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,SUM(matchs.victoire) AS NbDefaites,SUM(matchs.score2) AS NbButP,SUM(matchs.score1) AS NbButCFROM matchsWHERE matchs.joueur2_id=$IdJoueurGROUP BY IDcompetition";mysql_select_db($database_ConnexionScore, $ConnexionScore);$queryunion="$query1 UNION $query2";mysql_select_db($database_ConnexionScore, $ConnexionScore);$queryall="SELECT tablunion.IDcompetition AS IDcompetition,SUM(tablunion.NbMatchs) AS NbMatchs,SUM(tablunion.NbVictoires) AS NbVictoires,SUM(tablunion.NbNuls) AS NbNuls,SUM(tablunion.NbDefaites) AS NbDefaites,SUM(tablunion.NbButP) AS NbButP,SUM(tablunion.NbButC) AS NbButCFROM ($queryunion) AS tablunionGROUP BY IDcompetition";mysql_select_db($database_ConnexionScore, $ConnexionScore);$query="SELECT *,tournoi.nom_tournoi AS competition,tablunion2.NbButP/tablunion2.NbMatchs AS NbButPPM,tablunion2.NbButC/tablunion2.NbMatchs AS NbButCPM,tablunion2.NbButP-tablunion2.NbButC AS Goalaverage,tablunion2.NbVictoires/tablunion2.NbMatchs*100 AS PourcentV,elimination.nom_elimination AS ElimFROM ($queryall) AS tablunion2, tournoi, elimination_joueur, eliminationWHERE tournoi.id=tablunion2.IDcompetitionAND elimination_joueur.joueur_id=$IdJoueurAND elimination_joueur.niveau_elimination=elimination.idAND elimination_joueur.tournoi_id=tournoi.id";$reponse=mysql_query($query);if ($reponse){?><table border: 1px solid black><tr><td>IdCompete</td><td>-----Compete-----</td><td>NbMatchs</td><td>NbVictoires</td><td>NbNuls</td><td>NbDefaites</td><td>NbButP</td><td>NbButC</td><td>NbButPPM</td><td>NbButCPM</td><td>Elim</td><td>GA</td><td>%V</td></tr><?while ($donnees = mysql_fetch_array($reponse) ){?><tr><td><? echo $donnees['IDcompetition']; ?></td><td><? echo $donnees['competition']; ?></td><td><? echo $donnees['NbMatchs']; ?></td><td><? echo $donnees['NbVictoires']; ?></td><td><? echo $donnees['NbNuls']; ?></td><td><? echo $donnees['NbDefaites']; ?></td><td><? echo $donnees['NbButP']; ?></td><td><? echo $donnees['NbButC']; ?></td><td><? echo $donnees['NbButPPM']; ?></td><td><? echo $donnees['NbButCPM']; ?></td><td><? echo $donnees['Elim']; ?></td><td><? echo $donnees['Goalaverage']; ?></td><td><? echo $donnees['PourcentV']; ?></td></tr><?}?></table><?}?> <? $queryDerniereLigne = "SELECT SUM(table1.NbMatchs) AS NbMatchsT,SUM(table1.NbVictoires) AS NbVictoiresT,SUM(table1.NbDefaites) AS NbDefaitesT,SUM(table1.NbNuls) AS NbNulsT,SUM(table1.NbButP) AS NbButPT,SUM(table1.NbButC) AS NbButCT,NbButPT/NbMatchsT AS NbButPPMT,NbButCT/NbMatchsT AS NbButPCMT,NbButPT-NbButCT AS GoalaverageT,NbVictoiresT/NbMatchsT*100 AS PourcentVTFROM ($query) AS table1";$reponse=mysql_query($queryDerniereLigne);$Resultat=mysql_query($queryDerniereLigne) or die(mysql_error());if ($reponse){?><table border: 1px solid black><tr><td> </td><td>-----TOTAL-----</td><td>NbMatchs</td><td>NbVictoires</td><td>NbNuls</td><td>NbDefaites</td><td>NbButP</td><td>NbButC</td><td>NbButPPM</td><td>NbButCPM</td><td>GA</td><td>%V</td></tr><?while ($donnees = mysql_fetch_array($reponse) ){?><tr><td> </td><td> </td><td><? echo $donnees['NbMatchsT']; ?></td><td><? echo $donnees['NbVictoiresT']; ?></td><td><? echo $donnees['NbNulsT']; ?></td><td><? echo $donnees['NbDefaitesT']; ?></td><td><? echo $donnees['NbButPT']; ?></td><td><? echo $donnees['NbButCT']; ?></td><td><? echo $donnees['NbButPPMT']; ?></td><td><? echo $donnees['NbButCPMT']; ?></td><td><? echo $donnees['GoalaverageT']; ?></td><td><? echo $donnees['PourcentVT']; ?></td></tr><?}?></table><?}?> </body></html> J'ai fait 2 tableaux : 1 tableau pour presenter les resultats par tournois et puis un tableau "derniereligne" pour présenter les resulatts TOTAUX du joueur. Serait il possible de l'intégrer dans le 1er tableau ou non? merci encore PS : alleez les bleuuuuus Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 3 Juillet 2006 Partager Posté 3 Juillet 2006 Salut, je n'ai pas la réponse à ta question mais il y a des trucs qui me plaisent pas du tout dans ton code... 1) mysql_select_db($database_ConnexionScore, $ConnexionScore); Tu n'est pas obligé de te reconnecter à chaque fois à ta base de données... Une fois suffit.... 2) $reponse=mysql_query($queryDerniereLigne);$Resultat=mysql_query($queryDerniereLigne) or die(mysql_error()); Euh... j'ai beau cherché, je vois pas à quoi ça sert! Tu n'utilises jamais $Resultat par la suite, alors fait donc : $reponse=mysql_query($queryDerniereLigne) or die(mysql_error()); Voilà...Sinon, je vois pas trop d'où vient l'erreur... Est ce que cela marche avec uniquement: $queryDerniereLigne = "SELECT SUM(table1.NbMatchs) AS NbMatchs,SUM(table1.NbVictoires) AS NbVictoires,SUM(table1.NbDefaites) AS NbDefaites,SUM(table1.NbNuls) AS NbNulsFROM ($query) AS table1"; A+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 3 Juillet 2006 Auteur Partager Posté 3 Juillet 2006 Salut !!!! Alors j'essaye de faire cette requêteDerniere Ligne mais j'obtient l'erreur suivante : Duplicate column name 'id'. Ma page php : <?php require_once('Connections/ConnexionScore.php'); ?><!DOCTYPE html PUBLIC "–//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1–strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" ><body><?$IdJoueur=1;//mysql_select_db($database_ConnexionScore, $ConnexionScore);$query1 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,SUM(matchs.victoire) AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,0 AS NbDefaites,SUM(matchs.score1) AS NbButP,SUM(matchs.score2) AS NbButCFROM matchsWHERE matchs.joueur1_id=$IdJoueurGROUP BY IDcompetition";mysql_select_db($database_ConnexionScore, $ConnexionScore);$query2 = "SELECT matchs.tournoi_id AS IDcompetition,COUNT(*) AS NbMatchs,0 AS NbVictoires,SUM(1-matchs.victoire) AS NbNuls,SUM(matchs.victoire) AS NbDefaites,SUM(matchs.score2) AS NbButP,SUM(matchs.score1) AS NbButCFROM matchsWHERE matchs.joueur2_id=$IdJoueurGROUP BY IDcompetition";mysql_select_db($database_ConnexionScore, $ConnexionScore);$queryunion="$query1 UNION $query2";mysql_select_db($database_ConnexionScore, $ConnexionScore);$queryall="SELECT tablunion.IDcompetition AS IDcompetition,SUM(tablunion.NbMatchs) AS NbMatchs,SUM(tablunion.NbVictoires) AS NbVictoires,SUM(tablunion.NbNuls) AS NbNuls,SUM(tablunion.NbDefaites) AS NbDefaites,SUM(tablunion.NbButP) AS NbButP,SUM(tablunion.NbButC) AS NbButCFROM ($queryunion) AS tablunionGROUP BY IDcompetition";mysql_select_db($database_ConnexionScore, $ConnexionScore);$query="SELECT *,tournoi.nom_tournoi AS competition,tablunion2.NbButP/tablunion2.NbMatchs AS NbButPPM,tablunion2.NbButC/tablunion2.NbMatchs AS NbButCPM,tablunion2.NbButP-tablunion2.NbButC AS Goalaverage,tablunion2.NbVictoires/tablunion2.NbMatchs*100 AS PourcentV,elimination.nom_elimination AS ElimFROM ($queryall) AS tablunion2, tournoi, elimination_joueur, eliminationWHERE tournoi.id=tablunion2.IDcompetitionAND elimination_joueur.joueur_id=$IdJoueurAND elimination_joueur.niveau_elimination=elimination.idAND elimination_joueur.tournoi_id=tournoi.id";$reponse=mysql_query($query);if ($reponse){?><table border: 1px solid black><tr><td>IdCompete</td><td>-----Compete-----</td><td>NbMatchs</td><td>NbVictoires</td><td>NbNuls</td><td>NbDefaites</td><td>NbButP</td><td>NbButC</td><td>NbButPPM</td><td>NbButCPM</td><td>Elim</td><td>GA</td><td>%V</td></tr><?while ($donnees = mysql_fetch_array($reponse) ){?><tr><td><? echo $donnees['IDcompetition']; ?></td><td><? echo $donnees['competition']; ?></td><td><? echo $donnees['NbMatchs']; ?></td><td><? echo $donnees['NbVictoires']; ?></td><td><? echo $donnees['NbNuls']; ?></td><td><? echo $donnees['NbDefaites']; ?></td><td><? echo $donnees['NbButP']; ?></td><td><? echo $donnees['NbButC']; ?></td><td><? echo $donnees['NbButPPM']; ?></td><td><? echo $donnees['NbButCPM']; ?></td><td><? echo $donnees['Elim']; ?></td><td><? echo $donnees['Goalaverage']; ?></td><td><? echo $donnees['PourcentV']; ?></td></tr><?}?></table><?}?> <? $queryDerniereLigne = "SELECT SUM(table1.NbMatchs) AS NbMatchsT,SUM(table1.NbVictoires) AS NbVictoiresT,SUM(table1.NbDefaites) AS NbDefaitesT,SUM(table1.NbNuls) AS NbNulsT,SUM(table1.NbButP) AS NbButPT,SUM(table1.NbButC) AS NbButCT,NbButPT/NbMatchsT AS NbButPPMT,NbButCT/NbMatchsT AS NbButPCMT,NbButPT-NbButCT AS GoalaverageT,NbVictoiresT/NbMatchsT*100 AS PourcentVTFROM ($query) AS table1";$reponse=mysql_query($queryDerniereLigne);$Resultat=mysql_query($queryDerniereLigne) or die(mysql_error());if ($reponse){?><table border: 1px solid black><tr><td> </td><td>-----TOTAL-----</td><td>NbMatchs</td><td>NbVictoires</td><td>NbNuls</td><td>NbDefaites</td><td>NbButP</td><td>NbButC</td><td>NbButPPM</td><td>NbButCPM</td><td>GA</td><td>%V</td></tr><?while ($donnees = mysql_fetch_array($reponse) ){?><tr><td> </td><td> </td><td><? echo $donnees['NbMatchsT']; ?></td><td><? echo $donnees['NbVictoiresT']; ?></td><td><? echo $donnees['NbNulsT']; ?></td><td><? echo $donnees['NbDefaitesT']; ?></td><td><? echo $donnees['NbButPT']; ?></td><td><? echo $donnees['NbButCT']; ?></td><td><? echo $donnees['NbButPPMT']; ?></td><td><? echo $donnees['NbButCPMT']; ?></td><td><? echo $donnees['GoalaverageT']; ?></td><td><? echo $donnees['PourcentVT']; ?></td></tr><?}?></table><?}?> </body></html> J'ai fait 2 tableaux : 1 tableau pour presenter les resultats par tournois et puis un tableau "derniereligne" pour présenter les resulatts TOTAUX du joueur. Serait il possible de l'intégrer dans le 1er tableau ou non? merci encore Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 3 Juillet 2006 Partager Posté 3 Juillet 2006 Salut, tu viens donc de découvrir le "codebox"... mais faut le faire en cliquant sur Editer juste en dessous de ton message!!! (au lieu de Citation!!!) A+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 3 Juillet 2006 Auteur Partager Posté 3 Juillet 2006 Désolé pour le code à rallonge... maintenant j'utiliserais la balise codeboc. Merci Donc la requête ne marche pas, je pense qu'il faut spécifier un GROUP BY a la fin de la requête car j'ai l'impression que pour une synthaxe SQL comportant les "SUM" ou COUNt il faut obligatoirement faire un GROUP BY en fin de requête... Le problème c'est que je ne veux afficher sur cette dernière ligne QUE les résulatts TOTAUX et non pas groupés par tournoi.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Bourinho Posté 3 Juillet 2006 Partager Posté 3 Juillet 2006 Salut, je te donnes une piste avant d'aller me coucher pour tenter le coup du Group By... y a qu'a s'arranger pour faire un group by sur l'ID du joueur... étant donné que cela ne bouge pas... mais ça me parait bizarre...j'espère qu'il va y avoir des pros du SQL pour nous éclairer la dessus!!! A+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
spamyx Posté 3 Juillet 2006 Auteur Partager Posté 3 Juillet 2006 (modifié) effectivement si ce met un : GROUP BY joueur.id LIMIT 0,1" ; j'obtiens le bon et unique resultat TOTAL (à creuser...) a+ Modifié 3 Juillet 2006 par spamyx Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant