Comment puis-je ordonner une liste de résultat? - PHP - Programmation
Marsh Posté le 26-03-2008 à 14:33:50
tu peux pas le faire directement dans ta requête?
Marsh Posté le 26-03-2008 à 14:40:42
Je ne sais pas le faire, tu peux peut-être me l'indiquer? Merci
Vu que les scores ne sont pas stockés dans la bdd, je vois mal comment je pourrai utiliser un ORDER BY (^-^)
Marsh Posté le 26-03-2008 à 14:46:21
Ah oui, c'est super laid, j'avais pas regardé en détail comment tu calcules le score.
Qui a eu l'idée saugrenue de stocker les votes comme ça?
Marsh Posté le 26-03-2008 à 14:49:20
un abruti sûrement (^-^), j'essaye d'exploiter un plugin wordpress qui a le mérite d'être léger. On sait maintenant pourquoi Tu n'as pas une solutions coté php?
Marsh Posté le 26-03-2008 à 14:50:10
ah ben si, ordonner un tableau n'a rien de sorcier...fonction usort() et ses copines!
Marsh Posté le 26-03-2008 à 15:05:42
(@-@), ça, c'est quelque chose que je ne sais pas faire, pourrai-tu me mettre sur la voie, je suis un grand néophyte en PHP T-T Merci!
Marsh Posté le 26-03-2008 à 15:08:12
Il s'agit juste de définir une fonction qui sait ordonner deux éléments, et de la passer à usort()...
Marsh Posté le 26-03-2008 à 15:11:25
Décidément néophyte est un bien faible mot pour définir ma médiocrité en PHP XD Je n'en suis même pas capable. J'ai juste appris bêtement certain rouages PHP.
As-tu une portion de code à me proposer?
Désolé, j'en demande peut-être trop *blush*
Marsh Posté le 26-03-2008 à 15:12:34
Il y a un exemple dans la doc...
Marsh Posté le 26-03-2008 à 15:20:09
le problème, c'est que ma variable $votecount ne contient pas plusieurs valeurs. c'est juste une variable qui contient un seul est unique score. Vraiment, je ne vois pas comment m'y prendre.
Désolé de t'embêter avec ça, mais je sature un peu XD
Marsh Posté le 26-03-2008 à 15:22:13
Masterpingouin a écrit : le problème, c'est que ma variable $votecount ne contient pas plusieurs valeurs. c'est juste une variable qui contient un seul est unique score. Vraiment, je ne vois pas comment m'y prendre. |
plusieurs solutions:
1) Dans ta requête tu comptes les virgules de ton champ votes, et tu fais un order by là-dessus.
2) Tu mets tous tes résultats dans un tableau avant de les afficher, tu ordonnes le tableau, et ensuite tu le parcours pour afficher.
Marsh Posté le 26-03-2008 à 15:36:29
En gros il faut que je passe SELECT COUNT(,) AS score
FROM votes?
Marsh Posté le 26-03-2008 à 15:37:11
en très très gros, alors.
Marsh Posté le 26-03-2008 à 15:44:06
je te l'ai dis, je n'ai aucune logique ^^
J'ai essaye d'intégrer ça dans ma requête et il me retourne une erreur.
Marsh Posté le 26-03-2008 à 15:45:49
Il va falloir soit te mettre au sql, soit au php, je ne peux ni ne veux te donner plus que ce que je t'ai dit...
Marsh Posté le 26-03-2008 à 15:54:42
Ça, je l'ai bien comprit. Le problème c'est que là, je ne peux pas apprendre de mes erreurs : J'ai beau chercher, je ne trouve aucun exemple où Count() décompte le nombre de virgules voir le nombre de mots dans une cellule.
Merci quand même...
Marsh Posté le 26-03-2008 à 15:56:30
Cherche dans la doc de ton sgbd ce qu'il y a de disponible comme fonctions de traitement de chaines de caractères...
Marsh Posté le 26-03-2008 à 16:21:45
Apparemment il faut que je combine COUNT et SUBSTR pour que count puisse compter les virgules, je suis sur la bonne voie?
Marsh Posté le 26-03-2008 à 14:30:35
Bonjour,
j'essaye d'organiser une série d'article en fonction de leur score. Or, les score ne sont pas stockés dans la base de donnés. Il y a, à la place, la liste des ID des utilisateurs ayant voté pour l'article. Ça se présente de cette façon :
Table : votes
Ma fonction pour récupérer la liste des articles et leur score respectif (il y a du code wordpress dedans, mais rien de bien méchant : $wpdb->get_result correspondant à une requête de type fetch_array et get_post($requete->post)->post_title retourne le nom de l'article correspondant à l'ID stocké dans la table "votes" ) :
J'aimerai classer les article du mieux noté, au moins bien noté. Comment dois-je m'y prendre?
Merci à vous!
Message édité par Masterpingouin le 26-03-2008 à 14:39:48