tri (mysql ou php)

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par jeroen, 15 Novembre 2007.

  1. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    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 !
     
  2. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    Dis voir ce que tu veux sélectionner, ça sera plus clair déjà ! :D
     
  3. Mertyl
    Mertyl Nouveau WRInaute
    Inscrit:
    17 Juin 2007
    Messages:
    42
    J'aime reçus:
    0
    SELECT article, count(commentaire) as nbr
    FROM articles,commentaires
    WHERE articles.id = commentaires.id_articles
    ORDER BY nbr DESC

    ca fonctionne pas ca ?
     
  4. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    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.
     
  5. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    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 :idea:
     
  6. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    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:

    Code:
    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:
    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.
     
  7. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    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 :wink:
     
  8. YoyoS
    YoyoS WRInaute accro
    Inscrit:
    14 Septembre 2006
    Messages:
    3 226
    J'aime reçus:
    0
    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 ?
     
  9. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    on est bien d'accord, et c'est EXACTEMENT ce que je disais plus haut :wink: mais c'est pas ce que je veux....

    Je veux trier par COMMENTAIRES du plus au moins récent, MAIS EN REGROUPANT les articles

    compris ? :oops:
     
  10. Blaze_Heatnix
    Blaze_Heatnix WRInaute occasionnel
    Inscrit:
    31 Décembre 2003
    Messages:
    271
    J'aime reçus:
    0
    Et comme ça, est-ce mieux ?
    Code:
    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)
     
  11. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    ah, merci mais je tourne encors sous mysql 4, pas de requête double :oops:
     
  12. Blaze_Heatnix
    Blaze_Heatnix WRInaute occasionnel
    Inscrit:
    31 Décembre 2003
    Messages:
    271
    J'aime reçus:
    0
    Bah moi aussi pourtant... Tu as quand même essayé ?

    Et celle-là ?
    Code:
    SELECT id_article,date FROM commentaires GROUP BY id_article ORDER BY date DESC
     
  13. jeroen
    jeroen WRInaute passionné
    Inscrit:
    30 Août 2002
    Messages:
    2 131
    J'aime reçus:
    0
    Oui, mais en fait le GROUP BY regroupe tous les articles et ne laisse plus qu'un commentaire. Donc je ne pense pas qu'un GROUP BY puisse faire l'affaire...
     
Chargement...
Similar Threads - tri (mysql php) Forum Date
Astuce Stancer, nouvelle alternative française low-cost de Stripe/Paypal Monétisation d'un site web 28 Septembre 2022
Backlink et métrique Netlinking, backlinks, liens et redirections 22 Septembre 2022
Référencement par la console google des urls avec attribut de recherche Crawl et indexation Google, sitemaps 22 Août 2022
Avis mytripmed.com/fr Demandes d'avis et de conseils sur vos sites 1 Août 2022
Nom de la ville dans l' attribut Alt Débuter en référencement 14 Mai 2022
CSS / Attribuer 2 couleurs différentes aux H2 Développement d'un site Web ou d'une appli mobile 12 Mars 2022
Site vitrine Google business.site Google : l'entreprise, les sites web, les services 10 Mars 2022
Redistribution du jus de la homepage et sitemap Débuter en référencement 8 Février 2022
Données volumétrie mots clés non disponible Référencement Google 1 Février 2022
Furieux : Archives.org passe outre toutes les restrictions Autres moteurs de recherche connus 30 Janvier 2022
Site vitrine : avis pour un néophyte Demandes d'avis et de conseils sur vos sites 29 Janvier 2022
Stripe & logiciels certifiés nf525 ? e-commerce 10 Janvier 2022
Google analytics 4 explorer limité au trimestre ? Google Analytics 7 Décembre 2021
Prise en compte des attributs de déclinaisons, sans faire du duplicate content e-commerce 29 Septembre 2021
Page "Actualités" sur site vitrine Rédaction web et référencement 27 Juillet 2021
WordPress GT Metrix : comment tester sa vitesse au mieux ? Débuter en référencement 27 Juillet 2021
Stratégie Back Link - B2B - Industriel / BTP Netlinking, backlinks, liens et redirections 8 Juillet 2021
Domaine .fr et expatriation Noms de domaine et référencement 8 Juillet 2021
Adsense plus strict avec le classement en contenu adulte ? AdSense 6 Juillet 2021
Template pour un site vitrine sous Wordpress? Seo Friendly Débuter en référencement 27 Mai 2021