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 :D :wink:

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

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

:D

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