Abfrage vereinfachen?

lisali

Erfahrenes Mitglied
Hallo,

wie könnte ich folgende Abfrage verkürzen/vereinfachen?

PHP:
	$count = mysql_num_rows(mysql_query("SELECT `id` FROM `friends` 
	WHERE 
	(
	(`status`='both' AND `left`='".$_GET['id']."' AND `right`='".$_SESSION['id']."') 
	OR (`status`='both' AND `right`='".$_GET['id']."' AND `left`='".$_SESSION['id']."'
	) 
	AND 
	(
	(`status`='right' AND `left`='".$_GET['id']."' AND `right`='".$_SESSION['user_id']."') 
	OR (`status`='left' AND `left`='".$_SESSION['user_id']."') AND `right`='".$_GET['id']."'																		  	)
	AND
	(
	(`status`='left' AND `left`='".$_GET['id']."' AND `right`='".$_SESSION['user_id']."') 
	OR (`status`='right' AND `right`='".$_GET['id']."' AND `left`='".$_SESSION['user_id']."')																		
	)
	)"));

Es handelt sich um eine Prüfung einer Freundschaftseinladung.
Code:
$_Session['id']
bin ich selbst,
Code:
$_GET['id']
der user (an manchen Stellen steht noch $_Session['user_id'], aber das ist das selbe wie 'id'... muss es nur noch ändern).
Und es sind im Grunde nur 3 Spalten. Die Abfrage soll prüfen, ob Einladung verschickt, bereits erhalten oder ob bereits Freundschaft besteht.
 
Hi

ich weiß nicht ob's klappt, aber ein Versuch ist es ja wert:
SQL:
SELECT `id` FROM `friends` 
    WHERE 
    (`status` = 'both' OR `status` = 'right'  OR `status` = 'left')
    AND 
    ( (`left` = '".$_GET["id"]."' AND `right` = '".$_SESSION["id"]."') OR 
       (`right` = '".$_GET["id"]."' AND `left` = '".$_SESSION["id"]."')  
    )
 
Zurück