按事件PHP显示画廊

时间:2018-02-20 03:04:56

标签: php mysql codeigniter

我想根据活动和日期制作照片库。

例如:

**Trip 1**

[img1]  [img2]  [img3]

**Trip 2**

[img4] [img5]

我在数据库中有两个表:

category_gallery  |   gallery
-----------------------------------
id_category       |  id
name              |  id_category (foreign_key)
date              |  link

我怎么能实现这个目标?我已经成功加入了这个表并得到了这样的结果:

id  |id_category | name  | date       | link
------------------------------------------------------------------------
1   | 001        | trip1 | 01-01-2018 | www.xzx.cx/assets/images/001.jpg
2   | 001        | trip1 | 01-01-2018 | www.xzx.cx/assets/images/002.jpg
3   | 002        | trip2 | 02-02-2018 | www.xzx.cx/assets/images/003.jpg

但现在我不知道循环并显示结果,如第一个例子。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

创建一个模型函数,将关联数组键指定为行的name。循环的每个后续项目将添加到正确的子数组中:

$query = $this->db->query('...'); // your query
$rows = $query->result_array();
$data = array();
foreach ($rows as $row) {
    // assign assoc array index as name
    // all items with the same name will be in the same assoc array
    $data[$row['name']][] = $row;
}
return $data;

要显示,只需调用模型功能并执行以下操作:

控制器:

$this->load->model('your_model');
$data['items'] = $this->your_model->the_func();
$this->load->view('some_view', $data);

在视图中:

foreach ($items as $k => $v) {
    echo $k . '<br>';
    foreach ($v as $i) {
        echo $i['link'];
        echo '<br>';
    }
    echo '<br>';
}