Champ auto-increment à la volée

Invité
Invité n'ayant pas de compte PHPfrance

10 mai 2005, 00:49

Je sias pas si c'est le bon terme mais voici mon problème:

SELECT SUM(nb) AS nb_commande, id_client, FROM stat_client GROUP BY id_client ORDER BY nb DESC

Cette requète me renvoie les clients classés depuis celui qui a effectué le plus de commandes à celui qui en a effectué le moins. Jusque là, ça va.

Ce que je voudrais, c'est que dans cette même requète, je puisse ajouter parmi les champs renvoyés un chiffre auto-incrementé (1, 2, 3...) afin d'obtenir le classement.

Afin de pouvoir faire cela, par exemple: "Vous êtes notre 3ème meilleur client"

Merci d'avance :)

ViPHP
pjl
ViPHP | 2119 Messages

10 mai 2005, 01:13

même requete avec un limit
ca permet de savoir qui est le n ème meilleur client.

Par contre, je doute que ta requête fonctionne telle qu'elle est là.

Mammouth du PHP | 19672 Messages

10 mai 2005, 09:02

Tu ne pourras pas faire ça dans ta requête directement, par contre, tu récupères les résultats dans un tableau. Tu peux donc faire une petite boucle pour chercher à quelle ligne se trouve le client en question: l'index du tableau pourra être indépendant de l'id_client.
Fais-toi un petite fonction qui cherche à quelle ligne du tableau obtenu tu trouves ton client et qui retourne ce chiffre: avec ce retour, tu affiche "Vous êtes notre nième meilleur client".
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

10 mai 2005, 12:27

SELECT SUM(nb) AS nb_commande, id_client, FROM stat_client GROUP BY id_client ORDER BY nb DESC
> Tu as raison, c'est : SELECT SUM(nb) AS nb_commande, id_client, FROM stat_client GROUP BY id_client ORDER BY nb_commande DESC
> Le limit, c'est une bonne astuce, je n'y avais pas pensé ! mais dans ce cas precis, ça ne résoud pas mon problème :cry:

> Sinon, j'avais effectivement pensé à traiter ça après avec une analyse de tableau, mais je trouvais ça un peu lourd. Dommage qu'il n'y ait rien de prevu...

Merci en tout cas à vous deux :)