【发布时间】:2013-06-30 15:09:02
【问题描述】:
我是第一次使用 CI 框架,需要一些帮助。
我正在将现有网站迁移到 CI 框架,并逐步按照 CI 的教程进行操作,没有遇到太多麻烦,但是我似乎无法克服一些障碍...
我的数据库表有 2 列 - “国家”和“城市” - 我想在视图文件中返回一个结果,该结果按国家/地区分组所有行,将该国家/地区打印为标题,然后将所有相应的城市打印为相关国家/地区下方的列表。
即。
<h1>England</h1>
<ul>
<li>Liverpool</li>
<li>London</li>
<li>Sheffield</li>
</ul>
而在没有 CI 框架之前,我可以只写一个查询,返回一个结果,重新定义一个变量并抛出一些 if 语句来达到预期的结果 - CI 的 mvc 结构阻止我这样做......
我认为这个谜团的关键在于控制器并创建某种数组来管理数据并在视图文件中使用 - 有人可以帮我举个例子吗?
我现有的控制器是:
<?php
class Home extends CI_Controller {
public function index()
{
$this->load->model('Default_model');
$data['query'] = $this->Default_model->getResults();
$this->load->view('page_view', $data);
}
}
现有的视图文件是:
<?php if (isset($query)):?>
<?php foreach ($query as $row):?>
<h1><?=$row->country?></h1>
<ul>
<li><?=$row->city?></li>
</ul>
<?php endforeach;?>
<?php endif;?>
和型号:
function getResults()
{
$query = $this->db->query('SELECT * FROM events GROUP BY country, city ORDER BY country, city');
return $query->result();
}
谁能帮我举个例子,告诉我如何在 CI mvc 结构中处理这种类型的查询?
目前上述代码的返回结果为:
<h1>England</h1>
<ul>
<li>Liverpool</li>
</ul>
<h1>England</h1>
<ul>
<li>London</li>
</ul>
<h1>England</h1>
<ul>
<li>Sheffield</li>
</ul>
谢谢!
【问题讨论】:
-
请在您的问题中添加
$this->Default_model->getResults();的数据数组转储 -
你的意思是这个查询返回的结果是什么? @dianuj
-
您的逻辑/代码对我来说似乎很好,如果您收到任何错误怎么办?而不是
return $query->result();尝试做一个var_dump($query->result());die();看看你是否真的得到任何结果? -
@user2505513 是的结果
-
@dianuj 见上文,已编辑帖子以包含当前查询结果。
标签: php mysql codeigniter