News Skript mit einer query

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

  • News Skript mit einer query

    ich bitte um denkhilfe für mein problem..

    ich möchte die hauptnews mit einer mysql query auslesen.
    dazu brauche ich eine query die mir die ganzen einträge liefert und [b]die anzahl der comments[/b.

    die comments sind jeweils mit einem integerfeld mit den news verknüpft (die id der news = newsID in der tabelle für comments)

    das problem ist, wenn ich COUNT(`news_comments`.`id`) benutze, liefert er mir total krumme werte.
    normal müsste er mir die komplette comment anzahl jedesmal liefern, was ich aber auch nicht möchte, sondern die anzahl der comments für die jeweilige newsid.

    ich hoffe mal ihr habt ein paar ideen.
    spart euch vorschläge wie: "les doch für jede news die anzahl der comments einzeln aus" bitte, das kann nicht die richtige lösung sein, da es die performance zu sehr belastet.

  • #2
    so sollte es doch passen.

    Code:
    SELECT
        N.newshead,
        COUNT(C.newsid)
    FROM
        news N
            LEFT JOIN newscomments C USING(newsid)
    GROUP BY
        N.newshead
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      PHP-Code:
            $query "SELECT 
                        n.id as newsid,
                        n.userid,
                        n.titleid,
                        n.topnews,
                        n.datum,
                        n.title,
                        n.text,
                        t.id,
                        t.name AS theme,
                        u.id AS userid,
                        u.name AS username,
                        l.id,
                        l.newsid,
                        l.name,
                        l.url,
                        c.newsid,
                        COUNT(c.id) as comments
                      FROM
                        n_news AS n
                      LEFT JOIN
                        n_themes AS t
                      ON
                        n.titleid = t.id
                      LEFT JOIN
                        u_user AS u
                      ON
                        n.userid = u.id
                      LEFT JOIN
                        n_links AS l
                      ON
                        n.id = l.newsid
                      LEFT JOIN
                        n_comments AS c
                      ON
                        n.id = c.newsid
                      GROUP BY
                        n.id
                      ORDER BY
                        n.id DESC
                      LIMIT
                        
      $start,$anz;"
      so sieht sie im moment aus, sind natürlich noch andere sachen dabei.
      rückt der hier aber nicht ganz richtig ein (erste zeile)

      habe zwei testnews.
      2 comments bei der ersten, angezeigt werden 2 also korrekt.
      8 comments bei der zweiten. angezeigt werden 16.

      mit deiner methode sind es bei der zweiten 16, bei der ersten null.
      Zuletzt geändert von rythms; 03.09.2003, 14:15.

      Kommentar


      • #4
        ich nehme mal an, dass du nur zwei ausgaben wolltest. so genau ging das auch deinem letzten post nicht hervor.
        EDIT:
        ändere bitte nicht, wenn andere schon antworten...


        das es mehr sind, liegt daran, dass du nun viele weiter felder mit aufgenommen hast, die aufgrund von unterschieden nicht gruppiert werden können. also wird da so nix.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          sorry für den edit, bist ja 'n ganz schneller

          also, das mit den links wird mit sicherheit schonmal nichts.. da muss ich ne extra query benutzen und die news in einen array packen, dann einen neuen array mit den links dem jeweiligen newsarray einfügen, verbunden per newsid.

          das nehme ich mal raus..
          comments, user und news brauche ich allerdings schon in einer.

          die related links könnte man auch nur bei detailsicht zeigen.

          na sowas .. jetzt gehts



          danke.

          Kommentar


          • #6
            Original geschrieben von rythms
            na sowas .. jetzt gehts
            dann ists ja gut...

            ich schiebe dich jetzt auch mal nach sql. denn schliesslich war das kein wirkliches brainstorming...

            *VERSCHIEB*
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar

            Lädt...
            X