在 Codeigniter 中将标签表连接到帖子表
我需要一些帮助来检索属于特定标签组的帖子。我正在使用 Codeigniter 和 MySQL。
我的表格如下所示:
posts - postid、标题、日期等
tags - tagid、tag
post_tags - postid、tagid
这是函数我在我的模型中使用:
function get_posts($tags) {
$this->db->select('*');
$this->db->from('posts');
$this->db->order_by('date', 'DESC');
$this->db->join('post_tags', 'posts.postid = post_tags.postid');
$this->db->join('tags', 'post_tags.tagid = tags.tagid');
$this->db->where_in('tags.tag', $tags);
$q = $this->db->get();
return $q->result();
}
到目前为止,查询正在按照我想要的方式工作并返回所有正确的帖子。
但是,在循环结果并设置特定帖子信息时,每个帖子仅列出第一个标签。
是否可以重新构造查询,以便每个帖子都包含与原始 $tags 数组匹配的所有标签?
谢谢!
I need some help retrieving posts that belong to a specific group of tags. I am working with Codeigniter and MySQL.
My tables look like this:
posts - postid, title, date, etc
tags - tagid, tag
post_tags - postid, tagid
This is the function I am using in my model:
function get_posts($tags) {
$this->db->select('*');
$this->db->from('posts');
$this->db->order_by('date', 'DESC');
$this->db->join('post_tags', 'posts.postid = post_tags.postid');
$this->db->join('tags', 'post_tags.tagid = tags.tagid');
$this->db->where_in('tags.tag', $tags);
$q = $this->db->get();
return $q->result();
}
So far, the query is working the way I want and returning all the proper posts.
However, while looping through the result and setting up the specific post information, only the first tag is being listed per post.
Is it possible to restucture the query so that each post includes all the tags that match the original $tags array?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我没有对此进行测试,但我认为您需要向查询添加联接类型:
http: //codeigniter.com/user_guide/database/active_record.html
I've not tested this, but I think you need to add a join type to the query:
http://codeigniter.com/user_guide/database/active_record.html