显示多个类别的codeigniter

时间:2012-09-08 22:24:48

标签: php mysql codeigniter

我有一个这种格式的关系数据库

Table: posts
Columns: post_id,post_title,post_content

Table: categories
Columns: category_id,category_name

Table: posts_categories
Columns: post_id,category_id

帖子可以有多个类别,所以我使用post和category id将它们存储在posts_categories中,当我使用下面的查询从数据库获得结果时,它只显示最后一个类别,是否可以显示所有类别,否则我必须运行一个单独的查询,这里是我的代码。

    $this->db->select("p.*,pc.*,c.*");
    $this->db->where('post_id', $id); 
    $this->db->from('posts AS p');
    $this->db->join('posts_categories AS pc', 'pc.post_id = p.post_id', 'inner');
    $this->db->join('categories AS c', 'pc.category_id = c.category_id', 'inner');
    $q = $this->db->get();

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您没有提到实际选择的字段。但是,您可以SELECT p.title, c.category_name并在完成查询后(在问题中提到),您的结果中应该有多行,其中包含帖子标题和该帖子的类别名称。

现在,如果你想,你可以通过php中的帖子对这些类别进行分组,从db结果中构建一个新数组。