Problem nochmals aufgreifen. Eine Art Forensystem!

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

  • Problem nochmals aufgreifen. Eine Art Forensystem!

    Hi,

    ich würde gerne das folgende Problem,
    was ich bereits einmal hatte,
    nochmals aufgreifen und um Hilfe bitten.

    Das Nachrichtensystem soll überarbeitet werden und nicht jede Mail einzeln angezeigt werden.
    Beispiel von vorher:
    • ______________________________
      |_user_from_|_user_to_|_message_|
      |____1_____|____2___|__Hi1_____|
      |____1_____|____2___|__Hi2_____|
      |____1_____|____2___|__Hi3_____|
      |____7_____|____2___|__Hi4_____|


    User 2 würde nun unter seinen Nachrichten 4 Neue Nachrichten sehen.
    Von User 1 und 7.

    Ich jedoch möchte, dass ALLE Nachrichten zwischen den jeweiligen Usern nur einmal angezeigt werden.

    Wenn ich dann auf die Nachricht klicke, wird der Chronologische Verlauf angezeigt.
    Jedoch kommt jetzt das Problem.

    Wie schaffe ich es, dass ich bei der nachrichtenübersicht die Mails chronologisch so ordne, dass die neusten oben und die ältesten unten sind?

    Im Prinzip funktioniert es wie hier im Forum die Threads.
    Nur das man dann nur zu 2t in einen Thread schreibt. (wird validiert)
    Die Threads werden Chronologisch angeordnet.

    Kann mir da jemand weiterhelfen?

    DB: mysql
    Mein Ansatz:
    PHP-Code:
    SELECT         IF(mailbox.user_to ".$_SESSION['id']."SUM(mailbox.status), 0) AS status,
                                                    
    user.nick,
                                                    
    user.id AS userid,
                                                    
    mailbox.id,
                                                    
    mailbox.user_from,
                                                    
    mailbox.user_to,
                                                    
    mailbox.timestamp,
                                                    
    mailbox.subject
                                        FROM         mailbox mailbox
    ,
                                                    
    user user
                                        WHERE         
    (mailbox.user_to ".$_SESSION['id']."
                                        
    AND            user.id mailbox.user_from)
                                        OR             (
    mailbox.user_from ".$_SESSION['id']."
                                        
    AND            user.id mailbox.user_to)
                                        
    GROUP BY     user.id
                                        ORDER BY     mailbox
    .id DESC 
    Ich hoffe mir kann jemand helfen.
    Oder die SQL Abfrage aus einem Forum geben damit ich recherchieren kann.
    Dankeschön

  • #2
    Nehmen wir mal folgendes an:
    Wir sind User "17".

    Andere Leute schreiben uns und wir sehen á Person die uns schreibt oder die wir schrieben oder mit der wie schon einige Nachrichten gegenseitig ausgetauscht haben, jeweils ja nur eine Zeile für diesen user.

    Kein Problem!
    So:

    PHP-Code:
    SELECT         IF(mailbox.user_to 17SUM(mailbox.status), 0) AS status,
                                                    
    user.nick,
                                                    
    user.id AS userid,
                                                    
    mailbox.id,
                                                    
    mailbox.user_from,
                                                    
    mailbox.user_to,
                                                    
    mailbox.timestamp,
                                                    
    mailbox.subject
                                        FROM        mailbox mailbox
    ,
                                                    
    user user
                                        WHERE                
    (mailbox.user_to 17
                                        
    AND                    user.id mailbox.user_from)
                                        OR                    (
    mailbox.user_from 17
                                        
    AND                    user.id mailbox.user_to)
                                        
    GROUP BY        user.id
                                        ORDER BY        mailbox
    .id DESC 
    Der status zeigt mir an, ob die Nachricht bereits gelesen wurde oder nicht.
    Das ist aber im moment irrelevant.

    Mein Problem ist nun, die chronologische sortierung !
    Wie bekomme ich es hin, das der GROUP BY user, der zuletzt schrieb, oben ist usw.

    Ich hoffe, ich konnte es jetzt besser erläutern.

    Danke

    Kommentar


    • #3
      Hallo,

      ORDER BY datum


      vg
      gourmet

      Kommentar


      • #4
        Original geschrieben von gourmet
        Hallo,

        ORDER BY datum


        vg
        gourmet
        Das geht leider nicht.
        ich denke, ich sortiere nach dem Datum (Timestamp), jedoch
        versaut das GROUP BY die Sortierung dann wieder !

        Wie kann ich das umgehen?
        Leider gibt es kein GROUP BY und DANACH erst ORDER BY !
        Oder doch?

        Kommentar


        • #5
          Ich sortiere nach status.
          So sind die neusten immer Oben.
          Danke


          ~closed~

          Kommentar


          • #6
            Original geschrieben von phpMorpheus2

            Leider gibt es kein GROUP BY und DANACH erst ORDER BY !
            Oder doch?
            PHP-Code:
            ...GROUP BY     user.id
            ORDER BY     mailbox
            .id DESC... 
            ^^ hier tust du es doch auch... warum sollte es nicht gehen noch den timestamp hinzuzufügen

            Kommentar

            Lädt...
            X