使用codeigniter在一个页面中运行多个select quires

时间:2016-07-28 10:15:54

标签: php sql codeigniter

你好任何人都可以告诉你如何在控制器方法中从模型类加载两个函数。我想使用codeigniter在一个页面中运行多个select quires:

控制器

public function property_detail( $id )
{
    $this->load->model('insertmodel');

    $select1 = $this->insertmodel->find($id);
    $select2 = $this->insertmodel->detail_list();

    $data = array();

    $this->load->view('home/property_detail', ['select1'=>$select1], ['select2'=>$select2]);
    //$this->load->view('home/property_detail', ['select2'=>$select2]);

}

模型

public function find( $id )
{
    $query = $this->db->from('article')->where(['id'=> $id])->get();
    if( $query->num_rows() )
        return $query->row();
    return false;
}

public function detail_list(){

    $query1 = $this->db->query("select * from article");
    return $query1->result();
}

3 个答案:

答案 0 :(得分:1)

在控制器中

public function property_detail( $id )
{
    $this->load->model('insertmodel');

    $data['select1'] = $this->insertmodel->find($id);
    $data['select2'] = $this->insertmodel->detail_list();

    $this->load->view('home/property_detail', $data);
}

在模型中

public function find($id)
{
    $query = $this->db->get_where('article', array('id' => $id), 0, 0)->get();
    if( $query->num_rows() > 0 )
    {
        $result =  $query->result_array();
        return $result;
    }
    else
    {
        return false;
    }    
}

public function detail_list()
{
    $query1 = $this->db->query("select * from article");
    $result =  $query1->result_array();
    return $result;
}

在视图中

foreach ($select2 as $item) {
    # your foreach lop goes here
}
  
    

在将empty()传递给foreach循环之前检查when you press enter you will get below output like COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 12036 tps 12u IPv4 331030 0t0 TCP *:3000 (LISTEN)

  

答案 1 :(得分:0)

型号:

public function find( $id )
{
$query = $this->db->from('article')->where(['id'=> $id])->get();
if( $query->num_rows() )
    return $query->row();
return false;
}
public function detail_list()
{
$query1 = $this->db->query("select * from article");
return $query1->result();
}

控制器:

public function property_detail( $id )
{
    $this->load->model('insertmodel');

    $data['select1'] = $this->insertmodel->newMethod($id);

    $data['select2'] = $this->insertmodel->detail_list();
    $this->load->view('home/property_detail', $data);

}

答案 2 :(得分:0)

作为@ Rijin的替代方案,有用的答案newMethod()可以调用现有的模型方法。如果您不想破坏已为模型创建的界面,这可能很有用,因为您在其他代码中使用find($id)detail_list()

型号:

public function find($id)
{
  $query = $this->db->from('article')->where(['id' => $id])->get();
  if($query->num_rows())
    return $query->row();
  return false;
}

public function detail_list()
{
  $query1 = $this->db->query("select * from article");
  return $query1->result();
}

public function newMethod($id)
{
  $result['select1'] = $this->find($id);
  if($result['select1'] !== FALSE)
  {
    $result['select2'] = $this->detail_list();
    return $result;
  }
  return FALSE;
}

控制器:

public function property_detail($id)
{
  $this->load->model('insertmodel');
  $data = $this->insertmodel->newMethod($id);
  $this->load->view('home/property_detail', $data);
}