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

Php 如何获取属于文章的所有标签?,php,mysql,tags,Php,Mysql,Tags,请原谅我的英语。我用MVC架构和PHP创建了一个基于标签的网站。它很好用。当用户单击标记时,查询将提供该标记的所有信息。例如,用户单击PHP标记,查询将显示具有PHP标记的所有文章。这是我的问题 public function get($Getlabel){ $tagLabel = $this->db->prepare("select `txtcenter`.`id`, `title`, `imagurl`, `writer`, `dttime`, `txtmain`

请原谅我的英语。我用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);
}

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

如果您想在查询中返回文章标记列表,可以使用如下内容

    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

这个查询应该可以运行,我没有运行它,因为我没有您的表。

为什么每个单词都以大写字母开头?@PHPglue:是的,它可以运行。我说使用MVC和它的清晰!!!!为什么是$this->db->prepare?您是否创建了自己的具有$db属性的类,该类有自己的prepare方法?是的,我创建了Tags类和_constructPDO$db从controller Tagmy中获取数据查询中的问题!不是Php代码,我想mybe应该使用id来代替tag:Label,有人能告诉我这个想法吗?