如何获得属于文章的所有标签?

时间:2014-09-19 02:06:06

标签: php mysql tags

请原谅我的英语。我创建了一个基于标签的网站,具有MVC架构和PHP。它工作正常。当用户单击标记时,查询会提供该标记的所有信息。例如,用户点击" PHP"标签,查询显示所有具有" PHP"标签。这是我的查询

    public function get($Getlabel){
    $tagLabel = $this->db->prepare("select `txtcenter`.`id`, `title`, `imagurl`, `writer`, `dttime`, `txtmain`, `counter`,
                                              `tags`.`tag` as tagsshow
                                            from `txtcenter`
                                              INNER  join `taglink` on `taglink`.`txtcenterid` = `txtcenter`.`id`
                                              INNER  join `tags` on `tags`.`id` = `taglink`.`tagid`
                                            where `tags`.`tag` in (:Label)
                                            ");
    $tagLabel->execute(array('Label' => $Getlabel));
    return $tagLabel->fetchAll(PDO::FETCH_OBJ);
}

现在让我解释一下我的问题。我希望每篇文章都有所有标签也属于下面的编辑上面的查询。

1 个答案:

答案 0 :(得分:0)

如果要在查询中返回文章标签列表,可以使用类似

的内容
    select tbl.*,
GROUP_CONCAT(DISTINCT tags.tag SEPARATOR ',') As all_tags
from(
select `txtcenter`.`id`, `title`, `imagurl`, `writer`, `dttime`, `txtmain`, `counter`,
`tags`.`tag` as tagsshow, `taglink`.`tagid`
from `txtcenter`
INNER  join `taglink` on `taglink`.`txtcenterid` = `txtcenter`.`id`
INNER  join `tags` on `tags`.`id` = `taglink`.`tagid`
where `tags`.`tag` in (:Label)
) tbl
inner join tags  
on tags.id=tbl.tagid
GROUP BY tbl.id

这个查询应该无法运行,因为我没有你的桌子。