0

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

我正在将现有网站迁移到 CI 框架,并且一步一步地遵循 CI 的教程,没有太多麻烦,但是有一些我似乎无法克服的障碍......

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

IE。

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

谢谢!

4

1 回答 1

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;?>
于 2013-07-01T08:02:49.967 回答