requete pour faire un classement - SQL/NoSQL - Programmation
Marsh Posté le 25-10-2004 à 20:08:00
Quelle version de mysql ?
Je te propose de faire d'abord une liste des scores de toutes les équipes, ordonnée par équipe. Ensuite, c'est au choix :
- tu peux soit finir en php, en traitant chaque ligne renvoyée pour analyser le résultat et déduire le nombre de points,
- ou alors te plonger dans la doc mySql, qui doit probablement contenir une fonction te permettant d'associer à une variable son signe, puis au signe, une valeur ...
en gros, il faut regarder pour chaque match de chaque équipe, le signe de : ("le score de l'équipe" - "le score de l'équipe adverse" ), et associer à ce résultat soit la valeur 0 (si c'est négatif), soit 1 (si c'est nul), soit 3.
Avec Oracle, ça se fait assez simplement, mais parce qu'on peut utiliser des requêtes imbriquées ... ce qui n'est pas le cas des anciennes version de mySql.
Marsh Posté le 25-10-2004 à 22:44:34
en fait j'ai résolu mon problème, j'ai fait quelquechose qui resemble à ca mais tt en php.
Marsh Posté le 25-10-2004 à 16:55:07
Bonjour,
Je prépare actuellement un site web qui permettra de consulter de nombreuse statistiques footballistique sur le net.
J'utuilise pour cela Php et MySql mais je bloque sur la facon de creer le classement.
En effet j'ai actuellement 4 tables :
1- buts
2- effectifs
3- equipe
4- matchs
Qui sont faites de la manière suivante :
buts :
Champ Type Null Défaut
idbut smallint(6) Non
idjoueur smallint(6) Non 0
idequipe tinyint(4) Non 0
idmatch smallint(6) Non 0
effectifs :
Champ Type Null Défaut
idjoueur smallint(5) Non
nom varchar(30) Non
prenom varchar(30) Non
date-naissance date Non 0000-00-00
equipe varchar(30) Non
matchsCar smallint(6) Non 0
butsCar smallint(6) Non 0
equipe :
Champ Type Null Défaut
idequipe tinyint(3) Non
nomEquipe varchar(50) Non
matchs :
Champ Type Null Défaut
idmatch smallint(5) Non
date date Non 0000-00-00
journée tinyint(3) Non 0
equipedom tinyint(4) Non 0
equipeext tinyint(4) Non 0
scrEqDom tinyint(4) Non 0
scrEqExt tinyint(4) Non 0
Ce que je cherche actuellement à faire c'est le classement général le plus simple possible, c'est à dire afficher les équipes selon leur nombre de points (du plud grand au plus petit ).
Seulement pour cela, il faut que je calcule ce nombre de points cad que je trouve le nombre de matchs gagnés par l'équipe, que je le multiplie par 3 (nbre de points pour un matchs gagnés ... ...)
Mais je ne vois pas comment faire tout ces calculs (calculer le nombre de matchs gagnés en fonction des scores des matchs puis calculer le nombre de points en fonction du nombre de matchs gagnés ...
Je ne sais pas comment m'y prendre, alors si vous avez une petite idée, elle est la bienvenue et si vous voulez plus de précisions, je me ferais un plaisir de vous les donner !
Merci d'avance .
Message édité par john8585 le 25-10-2004 à 17:08:36