Codeproblem bei Umkehrabfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Codeproblem bei Umkehrabfrage

    hoi,

    ich nutze den folgenden Code um auszulesen,in welchen Usergruppen sich ein User in meinem Forum befindet:

    PHP-Code:
    //
    // Select User's Group Memberships
    //

    $sql "SELECT g.group_id, g.group_name, g.group_description 
    FROM " 
    USER_GROUP_TABLE " ug, " GROUPS_TABLE " g 
    WHERE ug.user_id = '" 
    $userdata['user_id'] . "' 
    AND ug.group_id = g.group_id
    AND g.group_single_user = '0'"

    $result mysql_query($sql);

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

        
    $template->assign_block_vars('groups', array(
        
    'GROUP_ID' => $groupmemberships['id'],
        
    'GROUP_NAME' => $groupmemberships['name'],
                    
    'GROUP_DESCRIPTION' => $groupmemberships['group_desc']
        ));    

    das funktioniert auch wunderbar.
    Danach habe ich die Abfrage umgekehrt um zu sehen,in welchen Gruppen ein User nicht Mitglied ist,und da liegt das Problem.
    Ich habe mich in zwei Gruppen eingetragen,die beide korrekt angezeigt werden,nämlich unter "Memberships".
    Doch die zweite Gruppe wird auch unter "Non-Memberships" angezeigt.

    PHP-Code:
    //
    // Select user's non Memberships
    //

    $sql "SELECT g.group_id, g.group_name 
    FROM phpbb_user_group ug, phpbb_groups g 
    WHERE ug.user_id != '
    $userdata[user_id]
    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'
    )); 

    wie kann das sein?

  • #2
    LEFT/RIGHT JOIN anwenden und auf IS NULL prüfen.

    Kommentar

    Lädt...
    X