Пожалуйста, извините за мой английский. Я создал сайт на основе тегов, с архитектурой 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
Этот запрос должен работать, я не запускал его, потому что у меня нет вашей таблицы.
Других решений пока нет …