tri (mysql ou php)
13 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
tri (mysql ou php)
Salut, j'ai un problème de tri, et j'aurai voulu résoudre ça via mysql, ou a défaut sous php après.
J'ai deux tables :
articles a (id, article)
commentaires c (id, id_article, commentaire, date)
La jointure est celle-ci : c.id_article=a.id
Je voudrais trier par ordre de commentaires décroissants regroupés par article.
Si c'est pas possible, existe t'il une fonction sous php qui permette de faire ça directement, ou est ce qu'il faut la créer ?
Merci !
J'ai deux tables :
articles a (id, article)
commentaires c (id, id_article, commentaire, date)
La jointure est celle-ci : c.id_article=a.id
Je voudrais trier par ordre de commentaires décroissants regroupés par article.
Si c'est pas possible, existe t'il une fonction sous php qui permette de faire ça directement, ou est ce qu'il faut la créer ?
Merci !
Mertyl a écrit:SELECT article, count(commentaire) as nbr
FROM articles,commentaires
WHERE articles.id = commentaires.id_articles
ORDER BY nbr DESC
ca fonctionne pas ca ?
Il faudra surement faire un truc du genre , mais il ne nous dit pas s'il veut trier les commentaires séparément ou par nombre de commentaire pour chaque article.
Ca manque d'info ou alors je comprends pas ce qu'il demande.
Merci pour l'ébauche.
Le code proposé sélectionne le nombre de commentaires associés à chaque article, et trie le résultat par nombre décroissant. Ce n'st pas ce que je veux faire
Je veux sélectionner tous les commentaires (c.id), groupés par articles (a.id), et triés par date de dernier commentaire
ex : liste d'articles et date des commentaire associés
article - date commentaires associés
1 - 17h30 19h00 21h00
2 - 18h20 19h30 20h00
3 - 14h00 22h00
ici je voudrais récupérer ça
article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
Merci pour vos
Le code proposé sélectionne le nombre de commentaires associés à chaque article, et trie le résultat par nombre décroissant. Ce n'st pas ce que je veux faire
Je veux sélectionner tous les commentaires (c.id), groupés par articles (a.id), et triés par date de dernier commentaire
ex : liste d'articles et date des commentaire associés
article - date commentaires associés
1 - 17h30 19h00 21h00
2 - 18h20 19h30 20h00
3 - 14h00 22h00
ici je voudrais récupérer ça
article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
Merci pour vos
pour afficher :
article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
j'utiliserais quelque chose comme ça:
Si tu comptes mettre en même temps le commentaire en lui même, bah tu rajoutes le champ commentaire dans ton select.
article - date commentaire associé - commentaire
3 - 22h00 - blabla1
3 - 14h00 - ...
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
Ce qui donne:
NB: Tu n'as pas besoin d'utiliser la table "article" pour faire ça !
Si maintenant, tu as encore envie d'afficher en plus, l'article en lui même. Ca va te faire une requête bien balaise en ressources ! :p Mais bon, ce n'est pas ce que tu veux vu comme tu viens de l'expliquer, vu que tu veux juste afficher ça tu as dis:
article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
Si ce n'est pas le cas, ben va falloir être un poil plus clair.
article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
j'utiliserais quelque chose comme ça:
- Code: Tout sélectionner
SELECT id_article, date
FROM commentaires
ORDER BY id_article DESC,date DESC;
Si tu comptes mettre en même temps le commentaire en lui même, bah tu rajoutes le champ commentaire dans ton select.
article - date commentaire associé - commentaire
3 - 22h00 - blabla1
3 - 14h00 - ...
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
Ce qui donne:
- Code: Tout sélectionner
SELECT id_article, date, commentaire
FROM commentaires
ORDER BY id_article DESC,date DESC;
NB: Tu n'as pas besoin d'utiliser la table "article" pour faire ça !
Si maintenant, tu as encore envie d'afficher en plus, l'article en lui même. Ca va te faire une requête bien balaise en ressources ! :p Mais bon, ce n'est pas ce que tu veux vu comme tu viens de l'expliquer, vu que tu veux juste afficher ça tu as dis:
article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
Si ce n'est pas le cas, ben va falloir être un poil plus clair.
Merci. Je suis bine d'accord avec toi, je n'ai pas besoin de la table article dans la requête, et au pire je ferais une jointure
Tu propose ça
Mais ça trie par id_article, puis par date : ça va donner ça :
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
3 - 22h00
3 - 14h00
alors que je voudrais afficher en premier l'article dont le dernier commentaire est le plus récent
Tu propose ça
YoyoS a écrit:
- Code: Tout sélectionner
(..) ORDER BY id_article DESC,date DESC;
Mais ça trie par id_article, puis par date : ça va donner ça :
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
3 - 22h00
3 - 14h00
alors que je voudrais afficher en premier l'article dont le dernier commentaire est le plus récent
ORDER BY id_article DESC,date DESC;
Non ca va te classer en priorité tous les articles en décroissant. Et pour chaque article identique, te mettre la date en décroissant. Merci de tester !
En oracle ça marche en tout cas, t'es sure que ça marche pas sous mysql ?
Non ca va te classer en priorité tous les articles en décroissant. Et pour chaque article identique, te mettre la date en décroissant. Merci de tester !
En oracle ça marche en tout cas, t'es sure que ça marche pas sous mysql ?
YoyoS a écrit:ORDER BY id_article DESC,date DESC;
Non ca va te classer en priorité tous les articles en décroissant. Et pour chaque article identique, te mettre la date en décroissant. Merci de tester !
on est bien d'accord, et c'est EXACTEMENT ce que je disais plus haut
Je veux trier par COMMENTAIRES du plus au moins récent, MAIS EN REGROUPANT les articles
compris ?
- Blaze_Heatnix
- WRInaute impliqué

- Messages: 322
- Inscription: Mer Déc 31, 2003 18:21
jeroen a écrit:Je veux trier par COMMENTAIRES du plus au moins récent, MAIS EN REGROUPANT les articles
Et comme ça, est-ce mieux ?
- Code: Tout sélectionner
SELECT t.id_article,t.date FROM (SELECT id_article,date FROM commentaires ORDER BY date DESC) t GROUP BY t.id_article ORDER BY t.date DESC
(A noter que c'est beaucoup plus précis qu'un simple : "SELECT id_article,date FROM commentaires GROUP BY id_article ORDER BY date DESC" dans le cas où "date" est sous la forme aaaa-mm-jj)
- Blaze_Heatnix
- WRInaute impliqué

- Messages: 322
- Inscription: Mer Déc 31, 2003 18:21
jeroen a écrit:ah, merci mais je tourne encors sous mysql 4, pas de requête double
Bah moi aussi pourtant... Tu as quand même essayé ?
Et celle-là ?
- Code: Tout sélectionner
SELECT id_article,date FROM commentaires GROUP BY id_article ORDER BY date DESC
13 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Gestion des langues et des sessions en PHP / MySQL
- Passage à l'heure d'été/hiver sur un forum phpBB
- Mise à jour du générateur de mots clés dans AdWords
- GoogleStats : analyse temps réel des visites de Google sur votre site
- Sortie officielle de GoogleStats v2.0 !
- AdSense Tracking : statistiques détaillées sur les clics AdSense
- Le WRInaute du moment
- Interview Wikio : transcript du chat WebRankInfo
- Googlebot, le robot d'indexation de Google
- link rel=canonical pour réduire les contenus dupliqués
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum