Guten Abend zusammen,
Ich erstelle derzeit ein kleines Messenger System (im Facebook Stil) - relativ simple mit PHP5 und Mysql. Leider stecke ich gerade ein wenig fest und hoffe, dass mir jemand einen kleinen Denkanschub in die richtige Richtung geben kann.
Zu meinem Projekt:
Die Datenbank samt Tabelle steht bereits, derzeit hänge ich allerdings fest bei der Abfrage aller verfügbaren Nachrichten. Ich nutze eine Tabelle "user_messages", welche die Nachrichten der User enthält.
Die Tabelle hat folgende Felder:
userid, sender, recipient, message, date, archived, status und deleted
Nun möchte ich folgendes erreichen: Tom(sender) schickt eine Nachricht an Laura(recipient) - Laura antwortet daraufhin auf diese Nachricht. Somit entstehen 2 Tabelleneinträge: sender: Tom (user id = 1) und Laura (user id = 2)
Ich möchte erreichen, dass diese Nachrichten in meiner Nachrichten Übersicht angezeigt werden, allerdings nur jeweils ein Ergebnis pro Person mit der man eine Konversation führt (Facebook User wissen sicher was gemeint ist).
In diesem Falle, würde mir (Tom) in meiner jetzigen Übersicht der Name von Laura auftauchen und darunter die letzte Nachricht aus dieser Konversation angezeigt werden. Soweit bin ich bereits, allerdings fehlt mir noch eines und ich komme einfach nicht auf die Lösung.
Beispiel: Ich (Tom) schicke eine Nachricht an Laura. Laura hat aber noch nicht geantwortet - trotzdem möchte ich, das meine Nachricht an Laura in meiner Übersicht erscheint. Dies tut Sie allerdings nicht, sondern erst dann, wenn Laura antwortet.
Hier meine SQL Abfrage:
Ich hoffe jemand hat den richtigen Tipp für mich!
Vielen Dank im Voraus!
Chans
Ich erstelle derzeit ein kleines Messenger System (im Facebook Stil) - relativ simple mit PHP5 und Mysql. Leider stecke ich gerade ein wenig fest und hoffe, dass mir jemand einen kleinen Denkanschub in die richtige Richtung geben kann.
Zu meinem Projekt:
Die Datenbank samt Tabelle steht bereits, derzeit hänge ich allerdings fest bei der Abfrage aller verfügbaren Nachrichten. Ich nutze eine Tabelle "user_messages", welche die Nachrichten der User enthält.
Die Tabelle hat folgende Felder:
userid, sender, recipient, message, date, archived, status und deleted
Nun möchte ich folgendes erreichen: Tom(sender) schickt eine Nachricht an Laura(recipient) - Laura antwortet daraufhin auf diese Nachricht. Somit entstehen 2 Tabelleneinträge: sender: Tom (user id = 1) und Laura (user id = 2)
Ich möchte erreichen, dass diese Nachrichten in meiner Nachrichten Übersicht angezeigt werden, allerdings nur jeweils ein Ergebnis pro Person mit der man eine Konversation führt (Facebook User wissen sicher was gemeint ist).
In diesem Falle, würde mir (Tom) in meiner jetzigen Übersicht der Name von Laura auftauchen und darunter die letzte Nachricht aus dieser Konversation angezeigt werden. Soweit bin ich bereits, allerdings fehlt mir noch eines und ich komme einfach nicht auf die Lösung.
Beispiel: Ich (Tom) schicke eine Nachricht an Laura. Laura hat aber noch nicht geantwortet - trotzdem möchte ich, das meine Nachricht an Laura in meiner Übersicht erscheint. Dies tut Sie allerdings nicht, sondern erst dann, wenn Laura antwortet.
Hier meine SQL Abfrage:
Code:
SELECT
id,
sender,
recipient,
message,
UNIX_TIMESTAMP(date) AS date,
status
FROM
(
select
*
FROM
user_messages
ORDER BY
id DESC
) AS conversation
WHERE
archived = '0'
&& deleted = '0'
&& recipient = '".mysql_real_escape_string($_SESSION['user'])."'
|| sender = '".mysql_real_escape_string($_SESSION['user'])."'
GROUP BY
recipient,
sender
ORDER BY
id DESC,
status = '0'
Ich hoffe jemand hat den richtigen Tipp für mich!
Vielen Dank im Voraus!
Chans
Zuletzt bearbeitet: