0

目的:データベースが数値1を返す場合は、セットアップページにリダイレクトし、2を返す場合は、セットアップページ2にリダイレクトします。0を返す場合は、elseステートメントをアクティブにします。

私はこれをしばらく試してきましたが、それでも私のコントローラーで動作するようです:

    $user_id                 = array('id'=>$this->loggedInUser->id);
    $results                 = $this->user_model->getUsersStage($user_id);

    if($results == '1'){
    redirect('registration/setup');
    } 

私のモデル:

 function getUsersStage($conditions=array(),$fields='')
 {

    if(count($conditions)>0)        
        $this->db->where($conditions);

    $this->db->from('users');

    if($fields!=''){
    $this->db->select($fields);
    }
    else{
    $this->db->select('stage');
    }


    $result = $this->db->get();
    return $result;


 }//End of getUsersStage Function

何が悪かったのか教えていただければ幸いです。いろいろな比較方法を試してみました。

if($results == 1){  
Error : Object of class CI_DB_mysql_result could not be converted to int
if(this->$results->stage == 1) 

確認するだけで、$this->loggedInUser動作しており、正しいsqlステートメントをモデルに送信します。

4

3 に答える 3

3

変化する

if($results == '1'){
    redirect('registration/setup');
    } 

if($results->row()->stage == 1){
    redirect('registration/setup');
    } 
于 2012-12-05T06:56:47.057 に答える
2

$ this-> db-> get()は結果セットを返します。

 $query = $this->db->get('mytable');
 // Produces: SELECT * FROM mytable

行が返されるかどうかを確認したい場合は、次のように確認できます。

if(count($result->result())) {

  // do stuff here
}
于 2012-12-05T07:00:25.193 に答える
2

Aftecがget()を呼び出す–アクティブレコード関数の1つで、クエリオブジェクトを取得します。実際に結果を得るには、そのオブジェクトのメソッドを呼び出す必要があります。row()次のように、結果オブジェクトを呼び出すことをお勧めします。

if($results->row()->staging == 1)
于 2012-12-05T07:02:42.170 に答える