comment faire ce classement ? [mysql] - PHP - Programmation
Marsh Posté le 27-03-2003 à 10:57:39
à force de bidouillages, g réussi à faire ça :
Code :
|
ca va, ou c nul ? ^^
Marsh Posté le 27-03-2003 à 18:27:53
salut
Tu a les 5 valeurs, je voi pas à koi le ID va servir
une question plus stupide, c koi une moyenne pondérée !
une moyenne je c, mais pondérée
Marsh Posté le 27-03-2003 à 19:59:07
ben qd elle est pondérée, tu y mets des coefficients (comme à l'école ^^)
l'ID me sert pour pouvoir avoir une autre info qu'une bete suite de chiffres...
Marsh Posté le 27-03-2003 à 20:12:01
Monsieur Tomate a écrit : à force de bidouillages, g réussi à faire ça :
|
Si tu veux, pour chaque ligne, la moyenne pondérée de ces 5 colonnes, c'est bon
Elles contiennent quoi ces colonnes
Marsh Posté le 27-03-2003 à 20:14:28
elles contiennent le nbre de fois ke les gens ont cliké sur excellent, moyen, etc.
mais la formule est peut-etre buggée, je l'ai pas encore essayée sérieusement, mais du moment ke ça met en valeur les bons jeux par rapport aux mauvais...
Marsh Posté le 27-03-2003 à 20:15:49
Avec MySQL, je sais pas, mais avec Orcale, il y a une fonction DECODE. Il y a certainement un équivalent.
Utilisation du DECODE :
SELECT ID, SCORE
FROM BETA_TESTS
ORDER BY DECODE(SCORE, 'excellent', 5, 'bien', 4, 'moyen', 3, 'pas terrible', 2, 'nul', 1) DESC
En fait, DECODE prends un nombre illimité de paramètres.
Le premier est le nom du champs (ou variable, fonction, etc.) à tester. Ensuite, les paramètres vont par doublons, le permier étant la valeur recherchée et le second la valeur de substitution.
S'il y a un dernier paramètre qui n'est pas en binôme, alors il est utilisé comme valeur par défaut, sinon, c'est la valeur du champ qui est conservée.
Avec MS SQL Server, il me semble que l'équivalent est "CASE".
Marsh Posté le 27-03-2003 à 20:20:05
hum... je me demande si ça va marcher, car excellent, moyen, etc. ne sont pas des valeurs, mais des noms de colonne... les valeurs, c des INT (le nbre de fois kun lecteur a choisi une de ces options)
Marsh Posté le 27-03-2003 à 20:21:59
Monsieur Tomate a écrit : elles contiennent le nbre de fois ke les gens ont cliké sur excellent, moyen, etc. |
Ah d'accord
Si, ca me parait bien comme requête
Marsh Posté le 27-03-2003 à 00:25:56
Ne vous inquiétez pas, je vais pas vous sortir le coup du : "comment on fait pour classer par ordre croissant"
Voila, alors ds ma table, g des données :
excellent, bien, moyen, pas terrible, nul
je voudrais faire un tri qui serait une moyenne pondérée de ces 5 champs, avec le minimum de requetes mysql possible (vu kil y a 600 jeux ds la table, ça vaudrait mieux).
---------------
HardGamers.org