2014-09-19 72 views
-2

請原諒我的英語。我使用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

爲什麼每個單詞都以大寫字母開頭? – CMPS 2014-09-19 02:10:04

+0

@PHPglue:是的,它的工作。我說使用MVC及其清晰! – AbbasHosseini 2014-09-19 02:16:09

+0

爲什麼它是'$ this-> db-> prepare()'?你是否創建了自己的具有'$ db'屬性的類,該屬性具有自己的'prepare()'方法? – PHPglue 2014-09-19 02:17:25

回答

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 

這個查詢應該工作我還沒有運行它,因爲我沒有你的表。

相關問題