0

私は私のサイトの私のグループのために以下のコードを書きました..

public function set_group_id($group_id)
    {

        $db2        = & $this->network->db2;
        /* if( $this->id ) {
            return FALSE;
        } */
        if( ! $group_id ) {
            return FALSE;
        }
        if( ! $g = $this->network->get_group_by_id($group_id) ) {
            return FALSE;
        }
        if( !$g->is_public && $this->user->id>0 && !$this->user->is_network_admin ) {
            $users  = $this->network->get_group_invited_members($g->id);
            if( !$users || !in_array(intval($this->user->id),$users) ) {
                return FALSE;
            }
        }

         $D->i_am_network_admin  = ( $this->user->is_logged && $this->user->info->is_network_admin > 0 );
         $D->i_am_admin      = $D->i_am_network_admin;

         if( !$D->i_am_network_admin ) {
         $D->i_am_admin  = $db->fetch('SELECT id FROM groups_admins WHERE group_id="'.$g->id.'" AND user_id="'.$this->user->id.'" LIMIT 1') ? TRUE : FALSE;
         }


        if( $g->mojaz && !$this->user->i_am_admin  ) {
            return FALSE;
        }
        $this->group    = $g;
        $this->to_user  = FALSE;
        return TRUE;
    }

この行の私のエラー...

             $D->i_am_admin  = $db->fetch('SELECT id FROM groups_admins WHERE group_id="'.$g->id.'" AND user_id="'.$this->user->id.'" LIMIT 1') ? TRUE : FALSE;

ユーザーがサイトの管理者である場合は投稿を送信できる場合、またはユーザーがグループの管理者である場合は投稿を送信できる場合は、Web サイトグループのリミッターを作成したいのですが、それ以外の場合は false を返します。

4

1 に答える 1

0

$db が関数set_group_id()で宣言されていないため、エラー行 $db は nullです。
データベース オブジェクト$db2しか表示されない

$db2 =& $this->network->db2

$db を $db2 に置き換えてみてください。$db2 に正しいデータベース オブジェクトと開いている接続へのハンドルが含まれている場合、それは機能します。

于 2013-02-02T21:14:13.860 に答える