2013-01-01 82 views
1

我想讓for循環返回單個值(TRUE/FALSE)。但代碼返回多個值。像TRUETRUETRUE一樣。我瞭解代碼,但沒有任何想法去做。PHP用於循環返回單個值

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"; 
     } 
    } 
} 

請幫忙。

UPDATE:

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."; 
} 
+0

我呃,我看不出它如何能返回多個值。根本不對。這是你的整個代碼嗎? –

+5

函數每次調用時只返回一個值... –

+1

那麼爲什麼你使用循環? – vlcekmi3

回答

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; 
} 
+0

Thx男人!簡單解決方案有用!正是我想要的。 – kamudrikah

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; 
+0

thx爲答案。但那不是我想要實現的。我只是想讓它返回TRUE/FALSE。不返回數組。仍在努力尋找解決方案。 – kamudrikah

0

呼應多個值,因爲你運行一個循環。它會回顯五個值,每個循環的執行都有一個值。如果您只希望回聲一次,請使用return。一個函數可以多次回顯,但是它只能返回一個值。當它返回true或false時,它終止該函數的執行。

+0

thx爲解釋花花公子。 – kamudrikah