Freundesliste und JOINS

lisali

Erfahrenes Mitglied
Hallo,

ich würde gerne eine Freundesliste anzeigen lassen und danach sortieren, ob der Benutzer online ist oder nicht.

So sieht der Code aus:

PHP:
$result = mysql_query("
SELECT `friends`.`left`, `users`.`id`, 
		`friends`.`right`,
		TIMESTAMPDIFF(MINUTE,`users`.`time`,NOW()) AS min 
		FROM `friends` INNER JOIN `users` ON ((`friends`.`left` OR `friends`.`right`) = `users`.`id`) 
		WHERE (`friends`.`left`='".$get_id."' OR `friends`.`right`='".$get_id."') AND `friends`.`status`='both'");

echo mysql_error();

while ($friends = mysql_fetch_assoc($result)) 
	{
if ($friends['left'] == $get_id) { $uid = $friends[`friends`.right]; }
if ($friends['right'] == $get_id) { $uid = $friends[`friends`.left]; }
echo "$uid";
	}

Zur Erläuterung: `friends`.left und `friends`.right ist die Spalte der User-ID in der Freundeslisten-Tabelle, da je nachdem wer die Freundesanfrage gestellt hat in die Spalte ein Datensatz eingetragen wird. $get_id ist immer die eigene $_SESSION ID, da ich ja nicht selbst in der Freundesliste auftauchen möchte.
Wie auch immer funktioniert die Abfrage soweit auch, dass alle Benutzer angezeigt werden, jedoch komischerweiße der SELECT der letzten Aktivität (`users`.`time`, die in der User-Tabelle ist) genauso wie die User-ID immer die selbe ist nach Überprüfung mit print_r():

PHP:
Array
(
     => 55
    [id] => 1
    [right] => 4
    [min] => 7591
)

Array
(
    [right] => 43
    [id] => 1
     => 55
    [min] => 7591
)

... # usw.

Woran kann das liegen, dass er immer die selbe User-ID und demzufolge auch letzte Aktivitäts-Zeit (time) im Array hat? Übrigens ist die Tabellen-Struktur so aufgebaut: friends [left,right,status] und users[id,time, ...]

Vielen Dank für jede Hilfe!

Liebe Grüße,

Lisa
 
Zurück