2012-02-24 11 views
0

foreach loop.iを使用してすべての値を出力する方法はループを使用しましたが、 は配列値の最後の値のみを出力します。foreachループはコントローラのビューページのすべての値を出力しません

query=$this->Common_model->getTableData('table name', array('field name' => $param))->result(); 


    foreach($query as $rows) 
    { 

    $user=$rows->userby; 
    $data['user_status']=$rows->status; 

     $data['user']=$user; 

     $status=$this->Common_model->getTableData('table name', array('id' =>$data['user_status']))->row(); 

     $data['status']=$status->name; 


    } 

答えて

1

これはされていたはずです

$query=$this->Common_model->getTableData('table name', array('field name' => $param)); //remove ->results() 


    foreach($query->result() as $rows) // correction here. 
    { 

    $user=$rows->userby; 
    $data['user_status']=$rows->status; 

     $data['user']=$user; 

     $status=$this->Common_model->getTableData('table name', array('id' =>$data['user_status']))->row(); 

     $data['status']=$status->name; 


    } 

result()関数は行を一つ一つ(順番)を横断するように、毎回呼び出されます。

+0

foreach($ query-> result()as $ rows)//ここで修正してください。私はその印刷物の最後の値を –

+1

に変更しました。コードの最初の行で ' - > results()'を削除しましたか? – linuxeasy

1

最後の値しか得られないのは、以前の値を上書きする同じインデックスに値を割り当てることです。これを試す必要があります

foreach($query->result() as $rows) // correction here. 
    { 

    $user=$rows->userby; 
    $data['user_status'][]=$rows->status; 

     $data['user'][]=$user; 

     $status=$this->Common_model->getTableData('table name', array('id' =>$data['user_status']))->row(); 

     $data['status'][]=$status->name; 


    } 
関連する問題