有用於存儲標籤4個表:PHP標籤顯示
tagovi, tagovi_vijesti, tagovi_blogovi, tagovi_dogadjanja
結構OD表tagovi
:
id - name
表tagovi_vijesti
的結構:
id - vijesti_id - tag_id
這同樣適用於另外兩張桌子。
在主界面顯示我從所有三個表這樣的標籤:
$sql = "SELECT
T.id AS id, T.name AS tag,
TV.id AS tag_vijest_id, TD.id AS tag_dogadjanje_id, TB.id AS tag_blog_id,
COUNT(*) ponavljanje
FROM tagovi AS T
LEFT JOIN tagovi_vijesti AS TV ON T.id = TV.tag_id
LEFT JOIN tagovi_dogadjanja AS TD ON T.id = TD.tag_id
LEFT JOIN tagovi_blogovi AS TB ON T.id = TB.tag_id
WHERE TV.id IS NOT NULL
GROUP BY id
ORDER BY id DESC
LIMIT 35";
$sql_result = mysql_query($sql,$connect)
or die("Upit nije izvrsen");
while ($row = mysql_fetch_array($sql_result)){
$tag_id = $row["id"];
$tag_url = $row["tag"];
$tag = preg_replace('/-/', ' ', $tag_url);
$tag_ponavljanje = $row["ponavljanje"];
if($tag_ponavljanje >= 10 && $tag_ponavljanje < 20) $fontSize = "14px";
elseif($tag_ponavljanje >= 20 && $tag_ponavljanje < 30) $fontSize = "16px";
elseif($tag_ponavljanje >= 30 && $tag_ponavljanje < 40) $fontSize = "18px";
elseif($tag_ponavljanje >= 40 && $tag_ponavljanje < 60) $fontSize = "20px";
elseif($tag_ponavljanje >= 60) $fontSize = "24px";
else $fontSize = "12px";
echo " <a href = \"$ispisi_link/tag/$tag_url\" style=\"font-size: $fontSize;\">$tag</a> ";
}
但我不認爲這是做它的最佳方式,因爲標籤是由ID排序,那麼所有這些舊標籤將不會再顯示,因爲結果是按ID排序的。你使用什麼樣的顯示(查詢)?你會建議我如何顯示標籤?按照每個標籤的重複次數來排序它們會更好嗎(在我的表格中,重複稱爲「ponavljanje」)?如果我使用這種方式,那麼我有點擔心會有大部分內容會被重複使用的標籤,並且新主題將永遠不會顯示在主頁上。或者我應該使用兩個查詢,一個用於新標籤,另一個用於大多數用戶?
感謝, 島
我認爲這個例子說明了爲什麼只有英文變量的名字纔是首選。 :-P – Tomalak
我認爲不難得出'tagovi'或'blogovi'是什麼意思:P:D –
@ile +1,但tagovi_vijesti有點難於挖掘 –