Page 1 sur 2
Classement
Posté : 19 mai 2006, 12:58
par Invité
Bonjour,
Je voudrai mettre au points un classement je possede un site avec une basse de donnée.
si je crée une sourve php:
$sql = 'SELECT * FROM `classement` LIMIT 0, 30 ';
ca ne va pas car ca me prend de 9 a 0 et si j ai 50 il va mettre ca comme ca:
9
50
il me prend un compte que le premier nombre et non la totaliter.
Pouver vous m aider Merci

Posté : 19 mai 2006, 12:58
par Arno76
Le message vient de moi

Posté : 19 mai 2006, 13:05
par Ryle
Je comprend pas bien ce que tu veux faire... c'est quoi ton 9 à 0 mais si tu as 50 ?
Actuellement ta requête sql correspond à
Code : Tout sélectionner
SELECT = ramène moi
* = toutes les colonnes
FROM `classement` = de la table classement
LIMIT 0, 30 = en te limitant à 30 enregistrement à partir de 0
Il va donc te renvoyer toutes les lignes correspondantes qu'il peut trouver.
- C'est un ordre que tu veux ajouter ?
- une limite différente pour qu'il te rammenne toutes les lignes ?
- ... ?
Posté : 19 mai 2006, 13:22
par Arno76
j ai un classement:
si je met un classement a l aide d un source php
il me fait ca
4
38
2
19
16
15
15
13
11
1
il me fait et moi je voudrai ca:
38
19
16
15
15
13
11
4
2
1
Merci
dans l ordre du plus grand au plus petit.
Posté : 19 mai 2006, 13:23
par Arno76
"SELECT *FROM `classement` ORDER BY `codes_entres` DESC"
avec cette fonction j obtient la reponse du dessus

Posté : 19 mai 2006, 13:40
par guilt92
Ton problème est résolu ??? je comprend pas grand chose, effectivement le ORDER BY est la solution pour classer les résultats d une requete...
Posté : 19 mai 2006, 13:44
par Arno76
non il est pas resolue
Je voudrai faire un classement du plus petit au plus grand.
et que tout les nombres soit prix en compte.
Merci

Posté : 19 mai 2006, 13:55
par zeus
Ton champ doit contenir un varchar et pas un integer.
La bonne requete est :
Code : Tout sélectionner
SELECT *
FROM `classement`
ORDER BY CAST(`codes_entres` AS integer) DESC
Posté : 19 mai 2006, 14:09
par Arno76
voici se que j ecrit:
$requete = "SELECT *FROM `membres`ORDER BY CAST(`points` AS vachar) DESC";
$result = @mysql_query($requete);
Mes je n est rien d ecrit dans le tableau...

Posté : 19 mai 2006, 14:09
par guilt92
Petite précisions comme tu as changé de version entre 2 postes : si tu veux du plus petit au plus grand utilise la méthode de
Zeus en mettant ASC à la place de DESC

Posté : 19 mai 2006, 14:11
par guilt92
voici se que j ecrit:
$requete = "SELECT *FROM `membres`ORDER BY CAST(`points` AS vachar) DESC";
$result = @mysql_query($requete);
Mes je n est rien d ecrit dans le tableau...

Le but si tu CAST est de transformer ta variable en un ENTIER pour pouvoir le classer, il faut donc faire un AS integer et non pas AS varchar
$requete = "SELECT *FROM `membres`ORDER BY CAST(`points` AS [b][color=blue]integer[/color][/b]) DESC";
$result = @mysql_query($requete);
Posté : 19 mai 2006, 14:17
par Arno76
merci pour ton aide mes je n ai plus rien d ecrit quand je fait ca

Posté : 19 mai 2006, 14:19
par Arno76
Avec ca j ai un classement il et pas pas bon du tout
$requete = "SELECT *FROM `membres` ORDER BY `points` DESC";
$result = @mysql_query($requete);
Mes ca reste ecrit sur mes page avec la modif je n ai plus rien d ecrit

Posté : 19 mai 2006, 14:20
par guilt92
La variable points est déclarée comme TEXT ou comme INT dans ta base de données ?
Posté : 19 mai 2006, 14:22
par Arno76
vachar