FlorianR
Erfahrenes Mitglied
Hallo Zusammen,
ich möchte eine Seite erstellen die mir eine Liste an Benutzern ausgibt, die gerade online sind. Mit Name und Profilbild.
Das Script ist fertig und funktioniert auch.
Ich habe jetzt drei Tabellen die ich für die Ausgabe benötige:
user_online (Hier stehen die Benutzer drin, die online sind... bzw. die ids)
user (Alle Benutzerinfos)
user_bilder (Die Profilbilder der Benutzer)
Mein Problem ist eigentlich "nur", dass er nur das zuletzt hochgeladene Benutzerbild anzeigen soll. Und da weiss ich gerade irgendwie nicht weiter, wie ich das in meinem SQL-Statement unterbringen soll.
Folgender Ansatz:
Dieser Ansatz klappt, mit Ausnahme der Sortierung des Profilbildes (er nimmt glaube ich das erste).
Ich habe dann noch überlegt, ob man das irgendwie mit Sub-Selects lösen könnte. Hier habe ich allerdings keine Erfahrung... es klappt gar nicht ;-)
Ich kriege dann die Ausgabe "Could not execute SQL query: Operand should contain 1 column(s)".
Habt ihr vielleicht eine Idee, wie man das schön sauber lösen könnte?
Ich freue mich auf eure Antworten.
Gruß,
Florian
ich möchte eine Seite erstellen die mir eine Liste an Benutzern ausgibt, die gerade online sind. Mit Name und Profilbild.
Das Script ist fertig und funktioniert auch.
Ich habe jetzt drei Tabellen die ich für die Ausgabe benötige:
user_online (Hier stehen die Benutzer drin, die online sind... bzw. die ids)
user (Alle Benutzerinfos)
user_bilder (Die Profilbilder der Benutzer)
Mein Problem ist eigentlich "nur", dass er nur das zuletzt hochgeladene Benutzerbild anzeigen soll. Und da weiss ich gerade irgendwie nicht weiter, wie ich das in meinem SQL-Statement unterbringen soll.
Folgender Ansatz:
PHP:
$sql = "SELECT uo.*, ub.thumb, u.name, u.user_id FROM user_online AS uo".
$sql = $sql. " LEFT JOIN user AS u".
$sql = $sql. " ON uo.user_id = u.user_id".
$sql = $sql. " LEFT JOIN user_bilder AS ub".
$sql = $sql. " ON ub.user_id = u.user_id".
$sql = $sql. " GROUP BY u.user_id".
$sql = $sql. " ORDER BY uo.zeit DESC";
Dieser Ansatz klappt, mit Ausnahme der Sortierung des Profilbildes (er nimmt glaube ich das erste).
Ich habe dann noch überlegt, ob man das irgendwie mit Sub-Selects lösen könnte. Hier habe ich allerdings keine Erfahrung... es klappt gar nicht ;-)
PHP:
sql = "SELECT uo.*, ".
$sql = $sql. " (SELECT u.name, u.user_id FROM user AS u WHERE u.user_id = uo.user_id),".
$sql = $sql. " (SELECT ub.thumb FROM user_bilder AS ub WHERE ub.user_id = uo.user_id ORDER BY ub.id DESC)".
$sql = $sql. " FROM user_online AS uo".
$sql = $sql. " ORDER BY uo.zeit DESC";
Ich kriege dann die Ausgabe "Could not execute SQL query: Operand should contain 1 column(s)".
Habt ihr vielleicht eine Idee, wie man das schön sauber lösen könnte?
Ich freue mich auf eure Antworten.
Gruß,
Florian