Codeproblem bei Umkehrabfrage

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment

    Working...
    X