Abfrage für Gruppenmitgliedschaft?

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.
Benutzeravatar
kratzer54847
Mitglied
Beiträge: 3065
Registriert: 20.01.2003 16:34
Wohnort: Düsseldorf/Hannover/Berlin
Kontaktdaten:

Abfrage für Gruppenmitgliedschaft?

Beitrag von kratzer54847 »

hoi,

ich schreib ich gerade an einer SQL-Abfrage,die bewirkt,dass angezeigt wird,in welchen Usergruppen ein User Mitglied ist, zu Tode :cry:

ich will ein Array mit den Gruppennamen erstellen und die dann anzeigen,doch das ist kein Problem,das Problem ist nur,wie ich an die Gruppennamen erstmal rankomme... :grin:

Code: Alles auswählen

	//
	// Select User's Group Memberships
	//

	$sql = "SELECT group_id
		  FROM " . USER_GROUP_TABLE . "
		  WHERE user_id = '$userdata[user_id]'";
	$result = mysql_query($sql);

	$groups = array();

	if ( $row = $db->sql_fetchrow($result) )
	{
		$groups['id'] = $row['group_id'];
		
		$sql = "SELECT group_name
			  FROM " . GROUPS_TABLE . "
			  WHERE group_id IN ($groups[id])
			  AND group_single_user = '0'";
		echo $sql;
	}
das hab ich bisher probiert....doch es funzt nicht :cry:

mfg Johny
Knowledge Base | MOD Datenbank | Boardsuche | HTML | PHP

Durch die richtige Verwendung dieser Links können viele Fragen beantwortet werden ;-)
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

Code: Alles auswählen

$sql = "SELECT g.group_id, g.group_name
        FROM " . USER_GROUP_TABLE . " ug, " . GROUPS_TABLE . " g
        WHERE ug.user_id = '" . $userdata['user_id'] . "'
                AND ug.group_id = g.group_id";
$result = mysql_query($sql);
heraus kommten datensätze mit der gruppen_id und dem gruppen_namen der gruppen in der, der jeweilige user ist.

BTW: der kb link in deiner sig ist defekt

ah
Benutzeravatar
kratzer54847
Mitglied
Beiträge: 3065
Registriert: 20.01.2003 16:34
Wohnort: Düsseldorf/Hannover/Berlin
Kontaktdaten:

Beitrag von kratzer54847 »

hoi saerdnaer,

danke für die beiden Hinweise habs direkt mal korrigiert.

aber eine Frage wirft sich da noch auf...ich hab jetzt die Query mal "umgedreht" um alle Gruppen anzeigen zu lassen,in denen ein User nicht mitglied ist...

Code: Alles auswählen

	//
	// Select User's Non Group Memberships
	//
	
	$sql = "SELECT g.group_id, g.group_name
		FROM phpbb_user_group ug, phpbb_groups g
		WHERE ug.user_id != '2'
		AND ug.group_id = g.group_id
		AND g.group_single_user = '0'"; 
	$result = mysql_query($sql);

	$groupnonmemberships = array();

	while ( $row = $db->sql_fetchrow($result) )
	{
		$groupnonmemberships['id'] = $row['group_id'];
		$groupnonmemberships['name'] = $row['group_name'];

		$template->assign_block_vars('groupsnon', array(
			'GROUP_ID' => $groupmemberships['id'],
			'GROUP_NAME' => $groupmemberships['name']
		));
	}
doch irgendwie werden da genau dieselben Gruppen angezeigt,wie beim 1. Teil,in phpmyadmin gehts aber :roll:

mfg Johny[/code]
Knowledge Base | MOD Datenbank | Boardsuche | HTML | PHP

Durch die richtige Verwendung dieser Links können viele Fragen beantwortet werden ;-)
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

Code: Alles auswählen

   $sql = "SELECT g.group_id, g.group_name
      FROM phpbb_user_group ug, phpbb_groups g
      WHERE ug.user_id != '2'
      AND ug.group_id = g.group_id
      AND g.group_single_user = '0'";
   $result = mysql_query($sql);

   $groupnonmemberships = array();

   while ( $row = $db->sql_fetchrow($result) )
   {
      $groupnonmemberships[] = $row;

      $template->assign_block_vars('groupsnon', array(
         'GROUP_ID' => $row['group_id'],
         'GROUP_NAME' => $row['group_name']
      ));
   } 
wobei ich nicht weiß wofür du $groupnonmemberships benutzen willst...

ah
Benutzeravatar
kratzer54847
Mitglied
Beiträge: 3065
Registriert: 20.01.2003 16:34
Wohnort: Düsseldorf/Hannover/Berlin
Kontaktdaten:

Beitrag von kratzer54847 »

jo hat wunderbar geklappt danke!
Knowledge Base | MOD Datenbank | Boardsuche | HTML | PHP

Durch die richtige Verwendung dieser Links können viele Fragen beantwortet werden ;-)
Benutzeravatar
kratzer54847
Mitglied
Beiträge: 3065
Registriert: 20.01.2003 16:34
Wohnort: Düsseldorf/Hannover/Berlin
Kontaktdaten:

Beitrag von kratzer54847 »

hm auf einmal zeigt er mir folgendes an:

Memberships: Admins, Testgruppe
Non-Memberships: Testgruppe

:roll:

klingt irgendwie unlogisch :D

der einzige Unterschied beider Gruppen ist,dass ich Gruppenleiter der UG "Admins" bin,in der Testgruppe bin ich aber nur Member.
Knowledge Base | MOD Datenbank | Boardsuche | HTML | PHP

Durch die richtige Verwendung dieser Links können viele Fragen beantwortet werden ;-)
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

Code: Alles auswählen

   $sql = "SELECT g.group_id, g.group_name
      FROM phpbb_groups g LEFT JOIN phpbb_user_group ug ON ug.group_id = g.group_id AND ug.user_id = '2'
      WHERE g.group_single_user = 0
         AND ug.group_id IS NULL";
Benutzeravatar
kratzer54847
Mitglied
Beiträge: 3065
Registriert: 20.01.2003 16:34
Wohnort: Düsseldorf/Hannover/Berlin
Kontaktdaten:

Beitrag von kratzer54847 »

hoi,

vielen Dank echt super!

mfg Johny
Knowledge Base | MOD Datenbank | Boardsuche | HTML | PHP

Durch die richtige Verwendung dieser Links können viele Fragen beantwortet werden ;-)
Benutzeravatar
saerdnaer
Ehemaliges Teammitglied
Beiträge: 4268
Registriert: 21.04.2001 02:00

Beitrag von saerdnaer »

die funktioniert wirklich?
Benutzeravatar
kratzer54847
Mitglied
Beiträge: 3065
Registriert: 20.01.2003 16:34
Wohnort: Düsseldorf/Hannover/Berlin
Kontaktdaten:

Beitrag von kratzer54847 »

jupp...

AND ug.user_id = '2'

hab halt das hier eben schnell durch

AND ug.user_id = '$userdata[user_id]'

ersetzt und schon ging es allgemein


wieso sollte die nicht gehen?
Knowledge Base | MOD Datenbank | Boardsuche | HTML | PHP

Durch die richtige Verwendung dieser Links können viele Fragen beantwortet werden ;-)
Antworten

Zurück zu „Coding & Technik“