Funktion ähnlich inArray() bei mySQL-Abfrage gesucht

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Seimon
Mitglied
Beiträge: 893
Registriert: 23.02.2005 18:10
Wohnort: Linz, Österreich

Funktion ähnlich inArray() bei mySQL-Abfrage gesucht

Beitrag 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?
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Dich stört, dass Du pro Arraywert eine neue Info ins SQL Schreiben musst oder was stört Dich?
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Seimon
Mitglied
Beiträge: 893
Registriert: 23.02.2005 18:10
Wohnort: Linz, Österreich

Beitrag von Seimon »

ich möchte haben:

Code: Alles auswählen

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

sinngemäß
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Code: Alles auswählen

WHERE group_id IN (" . implode(',', $allowed_ugs) . ") AND ...
KB:knigge
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

inarray prüft doch nur ob eine variable da ist und gibt keine aus?!

aber pyramide hat die lösung gepostet.
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
Seimon
Mitglied
Beiträge: 893
Registriert: 23.02.2005 18:10
Wohnort: Linz, Österreich

Beitrag von Seimon »

Pyramide hat geschrieben:

Code: Alles auswählen

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

Zurück zu „Coding & Technik“