CI框架MySQL查询

时间:2013-06-30 15:09:03

标签: php mysql codeigniter

我第一次使用CI框架,我需要一些帮助。

我正在将现有网站迁移到CI框架,并且一步一步地跟踪CI的教程,没有太多麻烦,但是有一些障碍我似乎无法过去。

我的数据库表有2列 - " country"和"城市" - 我想在视图文件中返回一个结果,该结果按国家/地区对所有行进行分组,将该国家/地区打印为标题,然后将所有相应的城市打印为相关国家/地区下方的列表。

<h1>England</h1>
<ul>
<li>Liverpool</li>
<li>London</li>
<li>Sheffield</li>
</ul>

在没有CI框架之前,我可以编写一个查询,返回一个结果,重新定义一个变量并输入一些if语句来实现所需的结果 - CI的mvc结构阻止我这样做...... / p>

我收集这个神秘的关键在于控制器并创建某种数组来管理数据并在视图文件中使用 - 有人可以帮我一个例子吗?

我现有的控制器是:

<?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>

谢谢!

1 个答案:

答案 0 :(得分:0)

试一试

<?php 
$country =$query[0]->country;
$index=1;
if (isset($query)):?>
<?php foreach ($query as $row):?>

<?php if($country==$row->country){ 

if($index==1){ ?> 
<h1><?=$row->country?></h1>
  <?php }
  $index++;
 }else{  
  $country=$row->country; 
 $index++;
 ?>
 <h1><?=$row->country?></h1>
<?php } ?>

<ul>
<li><?=$row->city?></li>
</ul>
<?php endforeach;?>
<?php endif;?>