Denkfehler! ;o)

Sandro18

Erfahrenes Mitglied
Liebe Mitglieder,

also ich hab grad einen kleinen Hacken! Ich würde gerne meine PM (Kurznachrichten) in meiner Community verwirklichen.

So ich bin schon soweit das ich eine tabelle anlege für jeden User oder?

ich mein Ich habe die DB "community" darin befinden sich die Tabellen"Name, Nachname...usw" was muss ich nun machen um das zu verwirklichen?

Wenn ich als Bsp.: eine weitere Tabelle anlege "pms" dann schreibt User1 angenommen eine Kurznachricht an User2 daraufhin folgt eine zweite, dann wird sie doch ausgegeben aber falsch!

Ausgabe: Nachricht1Nachricht2

Versteht Ihr was ich meine ?
Ich danke euch im Voraus für eure Hilfe!

Gruß Sandro
 
Warum sollte man nicht 2 Nachrichten speichern können. Ich denke da an einen Posteingang (so wie hier im Forum).
Die Tabelle könnte dann einfach so aussehen:
id;sender(userid);empfaenger(userid);topic;message
 
Als Beispiel mal ein typisches DB-Design für ein PN-System:
Tabelle User
ID
name

Tabelle Nachrichten
ID
titel
nachricht
absenderID
empfaengerID
ggf. noch ein Feld istAntwortAufNachrichtID
 
Vielen Dank für eure schnellen Antworten, jedoch HPVW an diese Schematik habe ich auch gedacht.

Aber: Was wenn ein User zwei Nachrichten an den anderen User schickt ? Dann stehen doch zwei Nachrichten in der Tabelle "nachricht"
und wird dann ausgegeben: nachricht1nachricht2nachricht3.... verstehst ;)

Gruß Sandro
 
Meinst Du vielleicht, dass Du die neuste Nachricht zuerst anzeigen willst?
Dann kannst Du die Nachrichten absteigend nach der ID sortieren.

Um das anhand von hpvw's Tabellenbeispiel mal zu demonstrieren:
PHP:
$nachrichten=mysql_query("select * from nachrichten order by id desc");
while ($nachricht=mysql_fetch_assoc($nachrichten))
 {
  //Ausgabe der Nachricht
 }
 
Ergänzend sollte noch das Feld sendtime (Typ DATETIME) in der Tabelle Nachrichten enthalten sein, hatte ich vergessen.

Und ich würde dem User nur die Nachrichten zeigen, die auch an den entsprechenden User geschickt wurden ;)
PHP:
 $nachrichten=mysql_query(
    "select * from nachrichten where empfaengerID= ".$activeUserID.
    " order by sendtime desc");
while ($nachricht=mysql_fetch_assoc($nachrichten))
{
  //Ausgabe der Nachrichten
}

Da jede Nachricht eine eigene ID (PRIMARY KEY) hat, sind auch mehrere Nachrichten mit gleichem Absender und Empfänger eindeutig voneinander unterscheidbar.

Gruß hpvw
 
Zurück