Php etiketleri görüntüleme

1 Cevap php

Etiketleri saklamak için kullanılan 4 tablolar vardır:

tagovi, tagovi_vijesti, tagovi_blogovi, tagovi_dogadjanja

Yapı od tablo tagovi:

id - name

Tablosunun yapısı tagovi_vijesti,

id - vijesti_id - tag_id

Aynı şey diğer iki tablo içindir.

Ana sayfada ben her üç tablo bu şekilde etiketleri görüntüler:

$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 " &nbsp; <a href = \"$ispisi_link/tag/$tag_url\" style=\"font-size: $fontSize;\">$tag</a> &nbsp; ";
    }

Ama etiketleri id tarafından sıralanır ve sonra sonuçları id göre sıralanır çünkü bütün o eski etiketler tekrar asla gösterilmeyecektir çünkü bu bunu yapmak için mükemmel bir yol olduğunu sanmıyorum. Eğer ekran (sorgu) Ne tür kullanıyorsunuz? Bana ne etiketleri görüntüleme hakkında önerirsiniz? O (benim tabloda yinelenen "ponavljanje" denir) her etiketin tekrarlayarak sayısına göre sıralamak için daha iyi mi? Ben bu şekilde kullanırsanız o zaman içerik ve yeni bir çoğunda ana sayfada görüntülenecek asla tekrarlanacaktır etiketler olacağı biraz korkuyorum. Ya da belki iki sorgular, yeni etiketleri için bir tane ve çoğunlukla kullanılan olanlar için birini kullanmak gerekir?

Thanks, Ile

1 Cevap

Tek bir tabloya (her iki dünyanın en iyi sahip bu şekilde) hem de birleştirerek o kadar karıştırın olabilir.

Yani 20 etiketleri bir etiket bulutu yapmak için gittiğini, en etiketli 10 ve 10 rasgele olanları seçin.

RAND () ORDER BY Eğer Arkh belirtildiği gibi olsa etiketleri çok varsa oldukça kaba olacak. Alternatif rastgele bir tamsayı ile her etiketi eklemek ve o sütun endeksli olabilir. Eğer etiketleri etrafında karıştırmak istiyorsanız, daha sonra bu sütuna rastgele değerler yeniden atamak olabilir.