Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] erst ORDER BY dann GROUP BY

Einklappen

Neue Werbung 2019

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

  • [Erledigt] erst ORDER BY dann GROUP BY

    Hallo,

    ich bin dabei ein Nachrichten-System zu schreiben. Es soll so funktionieren, wie man es z.B. aus Facebook kennt. Sodass man in seinem Posteingang nur nach Gesprächspartner gruppierte Einträge sieht.(Übersicht)

    Die Gruppierung habe ich bereits hinbekommen. Was mir noch fehlt, ist das er es vor der Gruppierung sortiert. Sodass in der Übersicht immer die aktuellste Nachricht angezeigt wird...

    PHP-Code:
    $ergebnis mysql_query("SELECT user.id, name, betreff, nachricht, date FROM user, nachrichten WHERE (empfaenger='$aktueller_user'  AND user.id=absender) OR (absender='$aktueller_user' AND user.id=empfaenger) GROUP BY user.id"); 
    da ich leider nicht
    Code:
    ORDER BY nachrichten.id DESC
    einfach dazu schreiben kann, habe ich das Problem das eben nicht die letzte nachricht angezeigt wird.

    kann mir jemand helfen? Habe echt schon einiges Probiert.... vielleicht sehe ich den Wald vor lauter Bäumen nicht mehr...

  • #2
    Ev. gibt es auch noch eine andere Lösung aber ich hab das bisher immer so gemacht, das ich ohne GROUP BY alle herausgeholt habe mit der Sortierung nach User, dann Datum und dann bei der Ausgabe in der Liste hab ich bei jedem neuen User einen "Zwischenstrich" gemacht.. -> Gruppenbruch (http://www.php.de/wiki-php/index.php...rdverfahren%29)

    Kommentar


    • #3
      http://dev.mysql.com/doc/refman/5.1/...group-row.html

      Kommentar


      • #4
        danke für eure antworten, mir fehlt nur doch der i-Punkt...

        also ich möchte es umbedingt mit der mysql abfrage machen, prinzipell kann es nicht so schwer sein....

        auf die Seite von ChrisB war ich auch schon gestoßen,.. wenn ich ein join mache, stimmt die ausgabe nicht mehr.. und das subselect funtioniert nicht.. Der Fehler hierbei ist, dass er bei der Gruppierung plötzlich user.id nicht mehr kennt.

        PHP-Code:
        $ergebnis mysql_query("SELECT * FROM 
        (SELECT user.id, name, betreff, nachricht, date FROM user, nachrichten WHERE
         (empfaenger='
        $aktueller_user'  AND user.id=absender) OR (absender='$aktueller_user' AND user.id=empfaenger) ORDER BY nachrichten.id DESC )
         AS tabelle GROUP BY user.id DESC"
        ); 
        Ich muss also nur noch das GROUP auf den allias "tabelle" beziehen...
        kann mir jemand sagen, wie hier der Syntax ist?

        Kommentar


        • #5
          "AS tabelle" aber "user.id"?
          Probiers mit "tabelle.id", schließlich ist "tabelle" dein selbst festgelegter Alias für den Subselect - der eine Tabelle darstellt.

          Kommentar


          • #6
            yo das wars

            naja ist halt nur ein hobby aber he ich hatte tabelle.user.id probiert.. war nah dran ^^

            danke vielmals

            Kommentar

            Lädt...
            X