viele Datensätze 10 soll aber 3 kommen nur

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

  • viele Datensätze 10 soll aber 3 kommen nur

    PHP-Code:
    SELECT
                    _news
    .ID,
                    
    _news.title,
                    
    _news.news,
                    
    _news.date,
                    
    _news.cat as cat_ID,
                    
    _news_cat.name as cat,
                    
    _news_cat.picture,
                    
    _member.UserName,
                    
    COUNT(_news_comments.newsID) as comments
                FROM
                    _news
                LEFT JOIN
                    _member
                ON
                    _member
    .UserId _news.user
                LEFT JOIN
                    _news_cat
                ON
                    _news_cat
    .ID _news.cat
                LEFT JOIN
                    _news_comments
                ON
                    _news_comments
    .newsID _news.ID
                
                GROUP BY
                    _news_comments
    .newsID
                ORDER BY
                    date DESC
                LIMIT
                    10

    also folgendes ich habe folgenden query dieser soll 10daten sätze auslesen inkl der dazugehörigen kommentare der news in einer anderen tabelle.
    aber ich bekomme immer nur 3datensätze aber warum?

  • #2
    Re: viele Datensätze 10 soll aber 3 kommen nur

    aber ich bekomme immer nur 3datensätze aber warum?
    weil es nur drei datensätze gibt?

    deine query erscheint mir fragwürdig, du gruppierst auf newsID und erhälst somit pro news immer nur einen willkürlich ausgewählten kommentar ... wozu das ganze?
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      weil mir das so gesagt wurde. Und so hats auch funktioniert bis mehr als 3 news da waren und nu zeigt er halt immer nur 3 an und ich weiß nicht warum. Wär cool wenn ihr mir helfen könntet.

      MfG
      Nascar

      Kommentar


      • #4
        Original geschrieben von Nascar
        Wär cool wenn ihr mir helfen könntet.
        Cool wär' das ganz sicher, aber ohne konkrete Daten sicher kaum möglich.

        Lad' mal einen Dump der Tabellen hoch, dann kann man ja weiter sehen ;-)

        Gruß Marian
        Online-Kurse die jeder versteht: HTML, PHP, MySQL, Word, Excel
        http://www.lernpilot.de/wbt/

        Kommentar


        • #5
          ich schick euch den dump nachher als txt da phpmyadmin hier etwas lange dauert mit dem laden

          Kommentar


          • #6
            so hier die txt mit vollständigen inserts
            Angehängte Dateien

            Kommentar


            • #7
              Wenn deine Abfrage richtig ist, kommen tatsächlich nur 3 Einträge, weil es auch nur drei unterschiedliche newsID in _news_comments gibt.

              Insofern hat die Datenbank wohl Recht ;-)

              was mir allerdings auffällt ist, dass _news_comments.newsID für die Einträge news.ID 3, 4, 5, und 6 leer sind. Möglicherweise hast du ja nur vergessen, Kommentare für diese News zu speichern.

              Oder willst du vielleicht wissen, wieviele Kommtare pro _news.ID vorhanden sind? Dann müsstest Du das so schreiben:

              Code:
              SELECT
                              _news.ID,
                              _news.title,
                              _news.news,
                              _news.date,
                              _news.cat as cat_ID,
                              _news_cat.name as cat,
                              _news_cat.picture,
                              _member.UserName,
                              COUNT(_news_comments.newsID) as comments
                          FROM
                              _news
                          LEFT JOIN
                              _member
                          ON
                              _member.UserId = _news.user
                          LEFT JOIN
                              _news_cat
                          ON
                              _news_cat.ID = _news.cat
                          LEFT JOIN
                              _news_comments
                          ON
                              _news_comments.newsID = _news.ID
                          
                          GROUP BY
                              _news.ID
                          ORDER BY
                              date DESC
                          LIMIT
                              10;
              Dann kommen aber auch nur 6 Einträge.

              Gruß Marian
              Online-Kurse die jeder versteht: HTML, PHP, MySQL, Word, Excel
              http://www.lernpilot.de/wbt/

              Kommentar


              • #8
                cool danke jetzt funzt es. war ja anscheinend nur die eine zeile die da falsch war

                Kommentar

                Lädt...
                X