Announcement

Collapse
No announcement yet.

MySQL - Letzte Antworten im Forum Anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • MySQL - Letzte Antworten im Forum Anzeigen

    Hallo Falk Prüfer ,

    und ein nettes Hallo an alle anderen Helferlein .

    Folgendes Problem, zu dem ich selbst noch keine Lösung habe:

    Ich möchte, dass jeweils die letzten Antworten zu einem Thema in meinem kleinen PHP-Forum angezeigt werden.

    Ich habe drei Tabellen:

    TBL_KATEGORIEN
    id
    Beschreibung

    TBL_THEMEN
    id
    kategorie_id
    datum

    TBL_ANTWORTEN
    id
    themen_id
    text
    datum

    Nun möchte ich eine HTML-Tabelle ausgeben lassen, die jeweils den letzten Eintrag zu jedem Thema anzeigt.

    Geht das mit einer einzigen Abfrage und, wenn ja, wie?

    Vielen Dank im Voraus.

    LG

  • #2
    Hallo,

    siehe: Bei "doppelten" Datensätzen nur einen anzeigen

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Vielen Dank schon mal, Falk. Ich werde es testen und danach davon berichten.

      Wie schön, dass es Menschen gibt, die logischer als ich denken können .

      Comment


      • #4
        Hallo Falk,

        was ich noch nicht ganz verstanden habe:

        Es gibt nur eine Tabelle doppeltest. Dieser Tabelle gebe ich jetzt einen Alias "a" und vergleiche sie mit den anderen Datensätzen der gleichen Tabelle doppeltest mit dem Alias "b"?

        Code:
        SELECT 
             a.id, a.name, a.last_use
        FROM 
             doppeltest a
        LEFT OUTER JOIN 
             doppeltest b 
        ON 
             b.name = a.name
        AND 
             b.last_use > a.last_use
        WHERE 
             b.last_use IS NULL

        Comment


        • #5
          Okay, funktioniert. Vielen Dank schon mal!

          Aber, jetzt bräuchte ich trotzdem noch aus der Tabelle THEMEN die Themenbeschreibung.

          Comment


          • #6
            Hallo,

            was hindert dich daran, diese noch zusätzlich zu joinen?

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Hallo Falk,

              ich habe einen zusätzlichen Join bereits versucht, aber leider bisher noch Fehler erhalten.

              Meine Abfrage sieht dann so aus:

              Code:
              SELECT 
                   a.id, a.name, a.last_use
              FROM 
                   doppeltest a
              INNER JOIN 
                   TBL_THEMEN
              ON
                   TBL_THEMEN.id = TBL_ANTWORTEN.THEMEN_ID
              LEFT OUTER JOIN 
                   doppeltest b 
              ON 
                   b.name = a.name
              AND 
                   b.last_use > a.last_use
              WHERE 
                   b.last_use IS NULL
              Aber ich habe nur eine Vermutung, woran die Abfrage scheitert. Logisch hörts bei mir sowieso auf. Da bin ich eine Niete und stecke nicht tief genug in der Materie.

              Comment


              • #8
                Hallo,

                also "doppeltest" ist eine Tabelle aus meinem Beispiel, die hast du doch sicher durch deine Antworten-Tabelle ersetzt!? Poste dann doch besser dein konkretes Statement.

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Zuerst einmal vielen Dank, Falk Prüfer, dass du so hilfsbereit bist. Das ist echt der Wahnsinn.

                  Meine Abfrage sieht so aus:

                  Code:
                          SELECT 
                  		a.id, a.post_user, a.post_timestamp, a.topic_id
                  	FROM 
                  		tbl_forum_posts a
                  	LEFT OUTER JOIN 
                  		tbl_forum_posts b 
                  	ON 
                  		b.topic_id = a.topic_id
                  	AND 
                  		b.post_timestamp > a.post_timestamp
                  	WHERE 
                  		b.post_timestamp IS NULL
                  	ORDER BY
                  		post_timestamp
                  	DESC
                  Die Abfrage funktioniert super, aber wenn ich jetzt noch einen Join einfüge, dann klappt die Abfrage nicht mehr:

                  Code:
                          SELECT 
                  		a.id, a.post_user, a.post_timestamp, a.topic_id
                  	FROM 
                  		tbl_forum_posts a
                          INNER JOIN
                                  tbl_forum_topic
                          ON
                                  tbl_forum_topic.id = tbl_forum_posts.topic_id
                  	LEFT OUTER JOIN 
                  		tbl_forum_posts b 
                  	ON 
                  		b.topic_id = a.topic_id
                  	AND 
                  		b.post_timestamp > a.post_timestamp
                  	WHERE 
                  		b.post_timestamp IS NULL
                  	ORDER BY
                  		post_timestamp
                  	DESC
                  Grüße

                  Comment


                  • #10
                    Hallo,

                    in diesem Context:

                    ON
                    tbl_forum_topic.id = tbl_forum_posts.topic_id

                    gibt es keine Tabelle tbl_forum_posts! Du musst hier den Alias verwenden:

                    ON
                    tbl_forum_topic.id = a.topic_id

                    Gruß Falk
                    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                    Comment

                    Working...
                    X