Zählen und Gruppieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zählen und Gruppieren

    Hi Leutz,

    ich bin auf der Suche nach einer Möglichkeit folgenes zu tun:
    Ich möchte aus einer Tabelle (news_comments) alle Datensätze
    zusammen Zählen die dem selben Newsartikel angehören,
    um dann, anhand der Artikel ID (article), den Titel des Artikels
    (news, headline) anzuzeigen.

    So das ich aus den beiden Tabellen "news" und "news_comments",
    hinterher folgende ausgabe habe:

    news.headline
    news_comments.anzahl
    news_comments.last_comment
    news_comments.last_comment_timestamp

    Das Ziel ist es hinterher die Top 5 der "heißesten" Themen zu haben.



    Meine Ansätze (im Kopf) waren:
    GROUP BY für das Filtern der news.headline
    Und COUNT für news_comments.anzahl

    Kann mir da jmd weiter helfen?
    Design & Coding with a breeze of madness at xjonx

  • #2
    Deine Ansätze sind richtig, wenn ich deine Frage richtig verstanden habe jetzt musst du das nur noch in ein Statement umwandeln!
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      ja, das ist mir leider auch klar
      nur leider weiß ich nicht, wie ich die beiden zusammen kriege.
      gleichzeitig alle mit dem selben wert zusammen zählen und dann gruppieren um eine top 5 zu erstellen ... letztlich ist das mit der Artikel zuweisung Pipifax ... nur das andere liegt mir im weg ...
      Design & Coding with a breeze of madness at xjonx

      Kommentar


      • #4
        ohne Tabellenstruktur ist das nicht so einfach ^^
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          hmmm, du hast ja so recht

          Code:
          CREATE TABLE `news` (
            `id` int(11) NOT NULL auto_increment,
            `headline` varchar(255) NOT NULL default '',
            `teaser` text NOT NULL,
            `text` longtext NOT NULL,
            `category` int(11) NOT NULL default '0',
            `timestamp` datetime default NULL,
            `draft` int(11) NOT NULL default '0',
            `comments` int(11) NOT NULL default '0',
            `author` int(11) NOT NULL default '0',
            `hits` int(11) NOT NULL default '0',
            PRIMARY KEY  (`id`)
          ) TYPE=MyISAM AUTO_INCREMENT=5 ;
          Code:
          CREATE TABLE `news_comments` (
            `id` int(11) NOT NULL auto_increment,
            `article` int(11) NOT NULL default '0',
            `text` longtext NOT NULL,
            `ip` varchar(255) NOT NULL default '',
            `timestamp` timestamp(14) NOT NULL,
            `user` int(11) NOT NULL default '0',
            `hide` int(11) NOT NULL default '0',
            PRIMARY KEY  (`id`)
          ) TYPE=MyISAM AUTO_INCREMENT=16 ;
          Bitte schöööööööööööööööööööööön!!!
          Design & Coding with a breeze of madness at xjonx

          Kommentar


          • #6
            hier meine Lösung:

            $sql = "SELECT *, COUNT(article) AS num FROM news_comments GROUP BY article ORDER BY timestamp DESC LIMIT 5" ;
            Design & Coding with a breeze of madness at xjonx

            Kommentar

            Lädt...
            X