Posts mit gleichem Thread aussortieren?

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

  • Posts mit gleichem Thread aussortieren?

    Hat jemand von euch eine Idee, wie man die letzten aktuellen Posts ausgeben kann, ohne dabei einen Post doppelt aus einem Thread zu haben?
    Mir fehlt da die Kenntnis einer bestimmten MySQL Fk.

    Wäre über Hilfe sehr erfreut

  • #2
    Wie sieht deine Query aus?
    Wie deine DB (falls sich das nicht aus der Query ergibt)?

    Kommentar


    • #3
      Also Tabelle für Posts enthält folgendes:
      id, text, autor, datum, thread, ip

      Es sollen quasi die Einträge sortiert werden und dann jeweils nur der neuste Post aus einer Thread-Gruppe gewählt werden, sodass später nur die neusten Threads zu sehen sind...

      Quers sieht mom so aus:
      $query = mysql_query("SELECT * FROM forum_post ORDER BY datum DESC LIMIT 10");

      Hier fehlt allerdings eben die oben genannte Beschränkung und da fällt mir keine MySQL Fkt. zu ein, deshalb hoffe ich auf kreative Einfälle

      Kommentar


      • #4
        Eine Frage: Wie kannst du die Reihenfolge der Posts reproduzieren? Du speicherst weder einen Zeitstempel noch eine Referenz auf den Vorgänger. Machst du das mit der id (auto_increment)?

        Für dein Vorhaben dürften dich GROUP BY und HAVING interessieren.

        Kommentar


        • #5
          Mit Group bei habs ichs auch schon versucht, dann wird ja meine Anfrage bsw. nach Threads gruppiert. Aber wenn ich dies so gestallte:

          PHP-Code:
          $query    mysql_query("SELECT * FROM
           forum_post 
          GROUP BY thread 
          ORDER BY datum DESC 
          LIMIT 10"
          ); 
          Ja ich lasse per auto_increment nächste ID automatisch setzen und der timestamp des posts wird in datum gespeichert.

          Könntest du mir mal kurz weiterhelfen, wie ich das mit Group BY und Having gestallten kann, weil sehe da keine Lösungsmöglichkeit!?

          Kommentar


          • #6
            check mal DISTINCT

            Kommentar


            • #7
              Danke!

              Aber inwiefern sollte mir DISTINCT denn helfen? Wenn ich damit doppelte Einträge filtern will, muss ich ja DISTINCT thread setzen, dann kann ich aber nicht mehr nach dem Datum sortieren!? Oder gibts dafür auch eine Lösung!?

              Kommentar


              • #8
                wieso kannst du dann nicht mehr nachm datum sortieren?

                Kommentar


                • #9
                  Na wenn ich "DISTINCT *" schreibe, würde der Server ja nichts doppeltes mehr zusammenfassen können, weil er ja nicht weiß, was er als Vergleich nutzen soll...

                  Kommentar


                  • #10
                    er soll doch gar nichts doppeltes zusammenfügen, oder?

                    Kommentar


                    • #11
                      Naja aber DISTINCT gibt doch je nach Angabe dahinter die entsprechend doppelten Einträge nicht doppelt aus, oder?

                      Wenn ich jetzt hätte:
                      PHP-Code:
                      mysql_query
                      (
                      "
                      SELECT DISTINCT thread FROM forum_post 
                      ORDER BY datum DESC 
                      LIMIT 10
                      "

                      Würde es doch nicht gehen. Was mache ich falsch? Vllt. hab ich dich ja auch falsch verstanden?

                      Kommentar


                      • #12
                        Ja, aber ich denk du willst nur einen post pro thread anzeigen?

                        Kommentar


                        • #13
                          Ich wollte anhand der Tabelle mit den Posts den aktuellen Thread auslesen... d.h. es sollte die Tabelle durchsucht werden wo die aktuellsten Beiträge sind (ORDER BY datum DESC) und dann aber unter den LIMIT 10 nicht mehrmals ein und derselbe Thread sein, da falls mehr Posts aktuell sind würden die posts vom selben thread ja unter die LIMIT 10 fallen, hoffe, dass ich es einigermaßen verständlich erklären konnte.

                          Kommentar


                          • #14
                            raff ich net.

                            Kommentar


                            • #15
                              SELECT max(datum) as dat [...] order by dat desc ?

                              Kommentar

                              Lädt...
                              X