| Вход Регистрация |
PHP скрипт: создать облако теговПусть, мы имеем две таблицы в SQL tag и tag_info Процесс создания облака тегов: $gettags = mysql_query("SELECT name FROM tag");
while ($thetags = mysql_fetch_array($gettags)) {
if ($thetags['name'] != null) {
$tags[] = $thetags['name'];
}
}
2. Для каждого тега считаем количество его использований и создаем новый массив $output, у которого два значения, сам тег и количество его использований: foreach($tags as $tag)
{
// Выводим только 25 тегов (на Ваше усмотрение)
if ($i < 25) {
$res = mysql_query("SELECT COUNT(*) AS totalnum
FROM tag_info
INNER JOIN tag ON tag_info.id_tag = tag.id
WHERE tag.name = '$tag'");
$res = mysql_fetch_assoc($res);
if($res)
{
$output[$i]['tag'] = $tag;
$output[$i]['num'] = $res['totalnum'];
}
}
$i++;
}
3. И в конце выводим все теги в облако. Вот весь рабочий php скрипт создания и вывода облако тегов: <?php
// функция, которая создает облако тегов
function createTagCloud($tags) {
// Счетчик
$i=0;
foreach($tags as $tag)
{
// Выводим только 25 тегов (на Ваше усмотрение)
if ($i < 25) {
$res = mysql_query("SELECT COUNT(*) AS totalnum
FROM tag_info
INNER JOIN tag ON tag_info.id_tag = tag.id
WHERE tag.name = '$tag'");
$res = mysql_fetch_assoc($res);
if($res)
{
$output[$i]['tag'] = $tag;
$output[$i]['num'] = $res['totalnum'];
}
}
$i++;
}
$html = '<div>';
function tagFontSize($num) {
$size = 9;
if ($num == 1) $size = 10;
elseif ($num == 2) $size = 11;
elseif ($num <= 4) $size = 12;
elseif ($num <= 8) $size = 13;
elseif ($num <= 16) $size = 14;
elseif ($num <= 32) $size = 15;
elseif ($num <= 64) $size = 16;
elseif ($num <= 128) $size = 17;
elseif ($num <= 256) $size = 18;
else $size = 19;
return $size;
}
foreach($output as $tag)
{
$html.= '
<span style="font-size:'.tagFontSize($tag['num']).'px"><a href="/tag='.$tag['tag'].'">'.$tag['tag'].'</a></span>';
if($tag != end($output)) $html.= ',';
}
$html.= '
</div>';
return $html;
}
// Извлекаем и аписываем теги в массив
$gettags = mysql_query("SELECT name FROM tag");
while ($thetags = mysql_fetch_array($gettags)) {
if ($thetags['name'] != null) {
$tags[] = $thetags['name'];
}
}
echo "<h3>Теги:</h3>
";
echo createTagCloud($tags);
?>
Скрипт рабочий 100%. Используется на некоторых сайтах. Читайте так же: Вывод наиболее соответствующих статей по тегам
Категория статьи: Веб-программирование | Просмотров: 5859 | Добавлена: 22.03.2013
Почему Вы еще не прокомментировали? |
|