WinFuture-Forum.de: Ausgabe Anzahl Von Kommentaren - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Ausgabe Anzahl Von Kommentaren


#1 _BigTim_

  • Gruppe: Gäste

geschrieben 06. Januar 2010 - 16:55

Hallo,

ich bin momentan dabei mir ein wenig mehr PHP anzueignen und schreibe als Übung ein kleines CMS.

Nun sitz ich aber bei Anzahl der Kommentare fest. Ich möchte in einem Statement gerne, die Infos zum Artikel haben und die Anzahl der Kommentare.
Ich habe ich die Tabelle comments, die neben der comment_id, noch die Felder für die Eingabe enthält (Name, Email, ...) und das Feld comment_item_id in, dass die selbe Nummer kommt wie die Artikel ID. Sprich, wird ein neuer Kommentar zu dem Artikel mit der ID 3 abgegeben, wird in der DB unter comment_item_id ebenfalls eine 3 eingetragen.

Nun habe ich mich bereits mit Joins und Count beschäftigt und stehe immer noch auf dem Schlauch.

Die Abfrage bisher sieht so aus:

SELECT article_id, article_title, article_content, article_date, article_kategorie, article_subkategorie, article_skill, article_tags, article_views, COUNT(comments.comment_item_id) AS NumberOfComments
FROM article 
INNER JOIN comments
ON article.article_id = comments.comment_item_id
WHERE article_active = 1 ORDER BY article_date DESC LIMIT 5


Problem ist nun, es wird immer nur ein Artikel angezeigt. Selbst wenn mehrere Artikel Kommentare haben oder nicht. Auch ein LEFT JOIN brachte nichts.

Ich würde mich freuen, wenn mir da jemand weiterhelfen könnte.

Grüße,

Tim
0

Anzeige



#2 Mitglied ist offline   prunkster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 281
  • Beigetreten: 22. Mai 08
  • Reputation: 5
  • Geschlecht:Männlich

geschrieben 06. Januar 2010 - 17:11

bin mir grad nicht ganz sicher, ob es das richtige ist, aber was mir auffällt: fehlt dort nicht irgendwie ein GROUP BY? z.b.

... WHERE article_active = 1 GROUP BY article_id ORDER BY article_date DESC LIMIT 5


kann auch sein, dass ich gerade voll auf dem schlauch stehe, falls ja: sry ;)
Eingefügtes Bild <--- Workstation@Home

My Blog: hier
0

#3 _BigTim_

  • Gruppe: Gäste

geschrieben 06. Januar 2010 - 17:42

Perfekt! Funktioniert! Allerdings brauchte es doch einen Left Join, da sonst Artikel ohne Kommentare nicht angezeigt werden.

Vielen lieben Dank! ;)

Dieser Beitrag wurde von BigTim bearbeitet: 06. Januar 2010 - 18:42

0

#4 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 07. Januar 2010 - 09:48

Wenn du nur den Artikel und die Anzahl der Kommentare haben möchtest, dann könntest du ja Subselects verwenden (werden mit JOIN umschrieben):

SELECT
  article_id,
  article_title,
  article_content,
  article_date,
  article_kategorie,
  article_subkategorie,
  article_skill,
  article_tags,
  article_views,
  (SELECT count(*) FROM comments WHERE comment_item_id = article_id) AS NumberOfComments
FROM
  article
WHERE
  article_active = 1
ORDER BY
  article_date DESC
LIMIT 5


Das Group By entfällt hier.

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0