affichage données d'une bdd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : affichage données d'une bdd

Re: affichage données d'une bdd

par fab » 24 oct. 2009, 00:35

Le COUNT(*) c'est pour une question de performances, il est toujours plus performant que le count(nom_du_champ) et normalement il devrait t'afficher le même résultat :p

Re: affichage données d'une bdd

par Ricou » 23 oct. 2009, 23:45

Ben j'aurais pas cru que ce serait aussi simple, forcément si mysql a déjà les fonctions toute prête c'est plus facile, je ne connaissais pas sum ni group by.
Je devrais pouvoir me débrouiller maintenant pour organiser ma page de statistique.

Je me permet juste de poster le final pour corriger tes erreurs :mrgreen:
$req = mysql_query('SELECT equipe, COUNT(joueur) as "nb_joueur", SUM(point) as "point" FROM table GROUP BY equipe ORDER BY equipe') or die(mysql_error());
while ($donnees = mysql_fetch_array($req))
{
	echo $donnees['equipe'];
	echo ' - '.$donnees['nb_joueur'] .' - ';
	echo $donnees['point'] . '<br />';
}
Est-ce qu'il existe une autre solution pour utiliser count et sum ou on est obligé de faire comme j'ai fait, donc avec "as" ?
j'ai constaté que group by devait etre mis avant order by, ce qui est logique, il faut faire la liste avant de la trier. ;)
Dans le count, plutot que l'étoile, je préfère mettre juste les joueurs, il me semble que c'est plus rapide à traiter ?

Donc en pratique ce code fonctionne, est-il propre sur le point théorique ? :)
Et encore un grand merci pour cette petite aide qui m'a fait faire un bond de géant dans mon apprentissage php et dans mon site.

Re: affichage données d'une bdd

par @rthur » 23 oct. 2009, 08:05

Bonjour,

Cela se fait très simplement avec la directive GROUP BY de SQL.
La requête dont tu as besoin devrait ressembler à quelque chose du genre:
SELECT equipe, COUNT(*), SUM(points) FROM table_joueurs ORDER BY equipe GROUP BY equipe
Regarde la doc de MySQL pour plus d'infos

affichage données d'une bdd

par Ricou » 23 oct. 2009, 00:52

Bonjour,
J'ai besoin d'aide pour afficher des données d'une bdd, la table se présente ainsi : joueur - équipe - points
Chaque nom est différent, il y a plusieurs équipes et bien sur plusieurs noms dans chaque équipe.
Par exemple
jean - équipe 1 - 20
julien - équipe 2 - 30
nicolas - équipe 1 - 5

J'aimerais afficher une page où serait listé toutes les équipes, avec le nombre de joueurs dans chaque équipe, et le total des points de tous les joueurs de chaque équipe, soit dans mon exemple ceci :
équipe 1 : 2 joueurs : 25 points
équipe 2 : 1 joueurs : 30 points


Je ne vois pas du tout comment faire, si vous pouviez m'aider svp, ça fait 2 jours que je cherche sans aucune solution.