Вход Регистрация |
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%. Используется на некоторых сайтах. Читайте так же: Вывод наиболее соответствующих статей по тегам Категория статьи: Веб-программирование | Просмотров: 5324 | Добавлена:
22.03.2013
Почему Вы еще не прокомментировали? |