Classer les résultats d'un count (2 tables)

Invité
Invité n'ayant pas de compte PHPfrance

02 déc. 2007, 17:10

Merci Truc. Comme j'ai dit, je m'inscris au prochain topic que je créerai... au risque de demander plus d'aide que d'en donner :lol:

Merci encore, votre communauté est vraiment sympa :wink:

ViPHP
AB
ViPHP | 5818 Messages

02 déc. 2007, 21:06

Pour répondre par avance à une question qui pourrait se poser : trier en fonction du nombre de vote et en fonction de la date de l'article.
Par exemple pour classer de la plus récente à la plus ancienne, les news ayant le même résultat au vote, il suffit de rajouter une seconde clause dans le order by
$sql="SELECT COUNT(boite_op_rep) as c, boite_id, boite_titre  
FROM boite 
LEFT JOIN  boite_op  
ON boite_op_ididee = boite_id 
WHERE boite_op_rep = 1 
GROUP BY boite_id  
ORDER BY c DESC,  boite_id DESC
LIMIT 10";
Voilà, je crois qu'on a fait le tour de ce sujet 8-)

(@ Liza, la prochaine fois, quelque soit ton profil, penses à t'inscrire sinon tu vas te faire rayer les côtes par un tigre à dent de sabre et j'aimerais pas être à ta place :lol: )

Eléphant du PHP | 83 Messages

01 janv. 2008, 11:31

salut j'ai essayé de comprendre ton programme à la fin car j'essaye de faire un petit peu la même chose mais je ne comprend pas c'est quoi ce c dans ton programme

Code : Tout sélectionner

SELECT COUNT(boite_op_rep) as [b][b]c[/b][/b], boite_id, boite_titre bon tu vas surement pensé que je ne comprends rien du tout mais c pas facile de se mettre au php Merci d'avance pour ta réponse

ViPHP
ViPHP | 5924 Messages

01 janv. 2008, 13:22

Quand dans une requète sql, tu mets "machin as c" ou bien "machin c", dans la clause SELECT ou la clause FROM (ou quelques autres mais après il faut voir le manuel), tu déclare un alias nommé par le membre de droite (ici "c") vers l'expression à gauche (qui peut être un nom de champ, de table, ou bien une expression plus complexe comme le résultat d'une fonction).

Donc, dans ce cas, à chaque fois dans la requète que tu vois un c isolé, MySQL considère que c'est "COUNT(boite_op_rep)" puisque c est un alias vers "COUNT(boite_op_rep)". Et même, lorsque le résultat est renvoyé à l'utilisateur, MySQL utilise le nom de l'alias, c'est à dire c, pour désigner le champ de résultat (si tu utilises mysql_fetch_array() en clés non numériques, mysql_fetch_assoc(), ou encore mysql_fetch_object()), et non l'expression complète, comme il le fait normalement.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

01 janv. 2008, 18:49

Modération :
karenma, si tu as une question dans le même style que l'auteur de ce sujet ouvre en un nouveau ,cela te permettra d'avoir plus de réponses.

En plus, tu pourras mettre [Résolu] dès que ton problème évoqué ici sera réglé.

Merci de prendre le temps de lire les règlements.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute