如何从视图查询数据库 - CodeIgniter

时间:2010-01-15 23:11:49

标签: php codeigniter

我有在控制器中运行的查询:

$data['query'] = $this->Member->select_sql($id);    
$this->load->view('myform');

然后在视图中输出数据:

foreach ($query->result() as $row):
   echo $row->post_title;
   echo $row->post_user_id;
endforeach;

所以这会输出一个用户发布的帖子列表。现在我想再运行一个查询,通过我的用户表循环每个帖子,并在每个帖子旁边输出用户信息。 (我不想在视图中选择数据或在MySQL中同时联合这两个表)

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

虽然这不是一个好习惯,但“最干净”的方法如下:

  • 在视图
  • 中抓取CI实例
  • 加载包含所需数据提取查询函数的模型
  • 在视图中运行模型中的函数

所以,在视图中:

$CI =& get_instance();
$CI->load->model('modelname');
$result = $CI->modelname->functionname();
var_dump($result);

经过测试和工作。

答案 1 :(得分:5)

将数据库适配器或相应的表对象注入View。

从上面的代码中,我假设这将是

$data['userModel'] = $this->User;

然后从那里使用它来运行您的查询,例如

$user = $userModel->select_sql($row->post_user_id);

答案 2 :(得分:0)

简单

<?php 
                        $qryd='select * from '.$tbname.'';
                        $queryd = $this->db->query($qryd);
                        $resultset = $queryd->result_array();
                    ?>