Nachrichten System mit Verlauf

latinum_1982

Erfahrenes Mitglied
Hallo ich steh mal wieder voll an :/

Ich möchte ein Nachrichten System für User schrieben aber steh voll an :/

Meine SQL

Code:
Tabelle chat 
 + id
 + from_user
 + to_user
 + message
 + read
 + time

Das eintragen von neuen nachricht funtionier einwand frei aber dann bei der erstellung der Chat- Übersich hab ich probleme :/

ich habe folgenden Probiert

PHP:
$sql = 'SELECT  DISTINCT  C.id, U.nickname, U.profilfoto
				FROM users U,chat C
				WHERE 
				CASE

				WHEN C.from_user = ?
				THEN C.to_user = U.id
				WHEN C.to_user = ?
				THEN C.from_user= U.id
				END
				
				AND 
				C.from_user = U.id OR C.to_user = U.id
				AND
				(C.from_user = ? OR C.to_user = ?)

				';

ich möchte eigendlich eine simple liste haben mit wem user (zb) 1 chattet ..

ich hoff das ihr mir weiter helfen könnt
 
Wird ein wenig unübersichtlich

Ist es MySQL?

Wenn ja, verwende im WHERE doch einfach FIELD()
SQL:
WHERE FIELD(?, c.from_user, c.to_user) > 0
 
Zuletzt bearbeitet von einem Moderator:
ja sorry bin leider ein neuling das PHP betrifft...

wenn ich das WHERE FIELD (?, c.from_user, c.to_user) > 0

verwende bekommen ich 9 daten setze es sollten aber nur 2 sein :/

das istjetzt in der tebelle chat drinnen
Code:
 id 	from_user 	to_user 	message 	read 	time
4 	1 	4 	Hallo	0 	2013-10-29 20:32:48
5 	4 	1 	Wie geht es dir?	0 	2013-10-29 20:35:57
6 	1 	5 	Hallo du sack?	0 	2013-10-29 20:33:52
 
Zuletzt bearbeitet:
Vielleicht denke ich gerade zu blöd, aber würde nicht ganz simpel reichen:
Code:
SELECT * FROM chat
WHERE from_user = ? OR to_user = ?
ORDER BY time

oder halt
Code:
SELECT c.* FROM chat AS c
INNER JOiN users AS u ON u.nickname = ? AND (c.from_user = u.id OR c.to_user = u.id)
ORDER BY c.time
 
so danke euch allen für denn gedanken schub aber so funktioniert es wie ich es will :)

PHP:
$sql = 'SELECT  U.id, U.nickname, U.profilfoto, C.read FROM chat C, users U 
WHERE 
CASE
WHEN C.from_user = ?
THEN C.to_user = U.id
WHEN C.to_user = ?
THEN C.from_user= U.id
END
AND
(C.from_user = ? OR C.from_user = ?)
ORDER BY time';
 
Zurück