Seite 1 von 1

Funktion ähnlich inArray() bei mySQL-Abfrage gesucht

Verfasst: 01.03.2006 16:41
von Seimon
Es geht um diese mySQL abfrage:

Code: Alles auswählen

$allowed_ugs = array('2','6','7');

$sql = 	"SELECT group_id 
		FROM " . USER_GROUP_TABLE . " 
		WHERE ( group_id = " . $allowed_ugs[0] . " OR group_id = " . $allowed_ugs[1] . " OR group_id = " . $allowed_ugs[2] . " ) AND user_id = " . $postrow[$i]['user_id']; 

if ( !($result = $db->sql_query($sql)) ) 
{ 
	message_die(GENERAL_ERROR, 'Could not get user group.', '', __LINE__, __FILE__, $sql); 
} 

$seimontemp = $db->sql_fetchrow($result);

$seimon_vip = ''; 

if ( $seimontemp['group_id'] == 6)
{ 
		$seimon_vip = '<br /><a href="viewtopic.php?t=5988" target="_blank"><img src="templates/subSilver/images/logo_vip.gif" alt="V.I.P." title="V.I.P." border="0" /></a>';
} 

if ( $seimontemp['group_id'] == 7)
{ 
		$seimon_vip = '<br /><a href="viewtopic.php?t=5988" target="_blank"><img src="templates/subSilver/images/logo_mod.gif" alt="Moderator" title="Moderator" border="0" /></a>';
} 

if ( $seimontemp['group_id'] == 2)
{ 
		$seimon_vip = '<br /><a href="viewtopic.php?t=5988" target="_blank"><img src="templates/subSilver/images/logo_admin.gif" alt="Administrator" title="Administrator" border="0" /></a>';
}

Wie kann ich diese Zeile schöner lösen?

Code: Alles auswählen

		WHERE ( group_id = " . $allowed_ugs[0] . " OR group_id = " . $allowed_ugs[1] . " OR group_id = " . $allowed_ugs[2] . " ) AND user_id = " . $postrow[$i]['user_id']; 
Oder kann man das ganze Ding irgendwie besser machen?

Verfasst: 01.03.2006 16:58
von mgutt
Dich stört, dass Du pro Arraywert eine neue Info ins SQL Schreiben musst oder was stört Dich?

Verfasst: 01.03.2006 17:59
von Seimon
ich möchte haben:

Code: Alles auswählen

      WHERE  inArray(group_id, $allowed_ugs) AND user_id = " . $postrow[$i]['user_id']; 

sinngemäß

Verfasst: 01.03.2006 18:42
von Pyramide

Code: Alles auswählen

WHERE group_id IN (" . implode(',', $allowed_ugs) . ") AND ...

Verfasst: 01.03.2006 22:42
von mgutt
inarray prüft doch nur ob eine variable da ist und gibt keine aus?!

aber pyramide hat die lösung gepostet.

Verfasst: 02.03.2006 12:00
von Seimon
Pyramide hat geschrieben:

Code: Alles auswählen

WHERE group_id IN (" . implode(',', $allowed_ugs) . ") AND ...
danke genau das hab ich gesucht :grin: