CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Besoin d'aide requête pour une req sql

billgates107
billgates107
Niveau 7
19 août 2013 à 13:00:28

Bonjour à tous, j'ai une question vraiment bête mais y'a pas moyen j'y arrive pas.
Admettons que j'ai deux tables:
Une table commentaires: id, message, membre_id, article_id
Une table articles: id, title, contenu, is_online, category_id, creation_date
Avec quel genre de requête je peux récupérer les articles les plus commentés ? J'ai tapé ça dans google mais tout le monde semble trouver ça évident et donc personne ne donne d'exemple :rire:
J'arrive évidement à afficher mes articles et les commentaires qui leur sont associés mais pour afficher les articles les plus commentés je sèche complétement. Merci d'avance :)

myhideout
myhideout
Niveau 7
19 août 2013 à 13:28:17

SELECT articles.id, count(commentaires.id) as nb_com
FROM articles
INNER JOIN commentaires on commentaires.article_id = articles.id
GROUPE BY articles.id
ORDER BY nb_com DESC;

ça doit être quelque chose comme ça :( j'ai pas testé .

Tu peux mettre les reqûetes que tu as testées ? pour éviter qu'elles reviennent .

Tiddo
Tiddo
Niveau 10
19 août 2013 à 13:30:36

Rajoute un ORDER BY et une LIMIT et t'es bon.

myhideout
myhideout
Niveau 7
19 août 2013 à 13:40:42

J'ai mis un order by :(
Pour le limit j'ai pas mis parceque l'auteur n'a pas précisé le nombre d'articles qu'il voulait :hap:

billgates107
billgates107
Niveau 7
19 août 2013 à 13:48:26

C'est pour admettons 10 articles. Je n'ai pas encore testé de requêtes car je n'étais absolument pas sûr du chemin à prendre. Je travaille sous CodeIgniter donc je galère à implémenter le count avec active records mais je reviens dire si ça à marché dès que j'ai réussi. En tout cas merci pour les réponses.

billgates107
billgates107
Niveau 7
19 août 2013 à 13:57:27

Il y a quelque chose que je ne comprends pas dans ta requête, en effet tu mets :
SELECT articles.id, count(commentaires.id) as nb_com
Articles.id va retourner plusieurs entrées et COUNT est une fonction d'agrégat.
Or j'avais cru comprendre qu'on ne pouvais pas mélanger une fonction d'agrégat avec d'autres champs alors comment ce type de requête est t-il exécutable ?

myhideout
myhideout
Niveau 7
19 août 2013 à 13:59:30

Elle fonctionne ? :hap:

myhideout
myhideout
Niveau 7
19 août 2013 à 14:00:28

(et donne le résultat voulu ?)

billgates107
billgates107
Niveau 7
19 août 2013 à 14:12:11

en faisant un print-r sur la requête j'obtiens quelque chose du genre
CI_DB_mysql_result Object ( [conn_id] => Resource id #30 [result_id] => Resource id #38 [result_array] => Array ( ) [result_object] => Array ( ) [custom_result_object] => Array ( ) [current_row] => 0 [num_rows] => 3 [row_data] => )
J'ai un peu de mal à interpréter les résultats mais la ça fait 3 heures que je fais du code je vais faire une pause pour y revenir à tête reposée en tout cas encore merci :)

riolo_charallll
riolo_charallll
Niveau 6
19 août 2013 à 15:09:40

Mouarf, quelle idée de faire une jointure dessus..

riolo_charallll
riolo_charallll
Niveau 6
19 août 2013 à 15:19:51

Articles.id va retourner plusieurs entrées et COUNT est une fonction d'agrégat.

:d) http://sql.sh/cours/group-by

billgates107
billgates107
Niveau 7
21 août 2013 à 11:29:33

C'est bon j'ai résolu mon problème j'ai choisi la facilité en créant un champ comment_count dans ma table articles et en implémentant ce champ à chaque commentaire posté ce qui fonctionne bien
Merci quand même pour votre aide :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment