1

我想让 for 循环返回单个值(TRUE/FALSE)。但是代码返回多个值。喜欢真真真。我理解代码,但没有任何想法去做。

public function user_activation_check(){
    for($i=1;$i<5;$i++){
        $query = $this->db->query("SELECT group_info.member".$i." FROM `group_info` INNER JOIN `user_student` ON group_info.member$i=user_student.email WHERE user_student.email=group_info.member$i");
        if($query->num_rows()==1){
            //return TRUE;
            echo"true";
        }else {
            //return FALSE;
            echo"false";
        }
    }
}

请帮忙。

更新:

public function member_activation(){
    if($this->model_users->user_activation_check()){
        $this->load->view('v_confirm_group');
    }else echo "Some members didn't activate their account.";
}
4

3 回答 3

4

使用与以下相同的数组:

     $res = array():
for($i=1;$i<5;$i++){
    $query = $this->db->query("SELECT group_........");
    if($query->num_rows()==1){
        $res[] = TRUE;
    }else {
        $res[] =  FALSE;
    }
}
return $res;
于 2013-01-01T16:18:10.593 回答
1

我认为这就是你想要的:

public function user_activation_check(){
   for($i=1;$i<5;$i++){
        $query = $this->db->query("SELECT group_info.member".$i." FROM `group_info` INNER JOIN `user_student` ON group_info.member$i=user_student.email WHERE user_student.email=group_info.member$i");
        if($query->num_rows()==1){
            // do nothing
        }else {
            echo "false"; // *atleast* one member didn't.
            return FALSE;
        }
    }
    echo "true";
    return TRUE;
}
于 2013-01-01T16:59:24.220 回答
0

它回显了多个值,因为您正在运行一个循环。它将回显五个值,每个循环执行一个值。如果您只希望它回显一次,请使用return. 一个函数可以回显多次,但它只能返回一个值。当它返回真或假时,它结束函数的执行。

于 2013-01-01T16:51:20.550 回答