在for循环中从数据库中检索数据

时间:2016-06-16 13:36:56

标签: codeigniter

我的控制器是

function shiftstudentdetailsmultiple(){
    $data['Show'] = $this->input->post('show[]');
    $roll = $this->input->post('roll[]');
    //echo sizeof($data1);
    for($i=0;$i<sizeof($roll);$i++)
    {

        $data['results'] = $this->FetchData->getstudentsdetailscouseandmultiple($roll[$i]); 
    }
    $this->load->view('registrar/shift_student_view', $data);

}

和模型是

function getstudentsdetailscouseandmultiple($Uniq_Id){

    $this->db->select("sprd.Uniq_Id, sprd.Name, sprd.Uni_Roll_No, cd.Course_Name, bd.Branch_Name, sprd.Year, sprd.Session, sprd.Section, sprd.Fee_Status, sprd.Curr_Status");
    $this->db->where("sprd.Uniq_Id",$Uniq_Id);
    $this->db->from("Students_Prim_Detals sprd");
    $this->db->join('Course_Details cd', 'cd.Course_Id=sprd.Course_id');
    $this->db->join('Branch_Details bd', 'bd.Branch_Id=sprd.Branch_id');

    $query = $this->db->get();
    if ($query->num_rows() > 0){
        return $query->result();
    }
    else {
        return false;
    }


}

在视图中显示只显示一次的提取数据..但在我的数据库中,当print_r

时,我有超过4个条目
                     $data['results']=this->FetchData->getstudentsdetailscouseandmultiple($roll[$i]);

数据显示正确..当加载时只显示一个数据..最后一个条目..

 $this->load->view('registrar/shift_student_view', $data);

1 个答案:

答案 0 :(得分:1)

每次打电话......

$data['results'] = $this->FetchData->getstudentsdetailscouseandmultiple($roll[$i]);

用新回复替换$data['results']中存储的值。因此,只有一个返回发送到视图。

您需要按照这些方针修改控制器。

$student_detail = array();
for($i=0;$i<sizeof($roll);$i++)
{    
  $student_detail[] = $this->FetchData->getstudentsdetailscouseandmultiple($roll[$i]); 
}
$data['results'] = $student_detail;

然后在您的视图中,您将需要遍历$results以显示数组中的每个项目。

foreach($results as $detail){
  echo "Name: ". $detail->name;
  echo "Course: ". $detail->Course_Name;
  //etc...
}