<?php

/* Скрипт для создания простейшего облака тегов.
Для его работы необходима таблица MySQL:
------------------------------------------------------------------------
CREATE TABLE `tag` (
  `tag` text NOT NULL,
  `counter` varchar(5) NOT NULL
);

INSERT INTO `tag` VALUES ('Пиво', '323');
INSERT INTO `tag` VALUES ('Водка', '424');
INSERT INTO `tag` VALUES ('Коньяк', '160');
INSERT INTO `tag` VALUES ('Ликер', '127');
INSERT INTO `tag` VALUES ('Настойка', '95');
INSERT INTO `tag` VALUES ('Спирт', '153');
------------------------------------------------------------------------



Для правильного отображения облака на странице 
необходима примерно такая таблица стилей:
------------------------------------------------------------------------
<style>
#tagcloud {
    width: 300px;
    background:#FFF;
    padding: 10px;
    border: 1px solid #000;
    text-align:center;
}

#tagcloud span {
    padding: 4px;
}

.smallest {
    font-size: x-small;
}

.small {
    font-size: small;
}

.medium {
    font-size:medium;
}

.large {
    font-size:large;
}

.largest {
    font-size:larger;
}
</style>
----------------------------------------------------------------------*/

mysql_connect('host''user''password') OR DIE("Нет соединения с базой.");
mysql_select_db("base") OR DIE("Не могу выбрать базу."); 
mysql_query("SET NAMES 'utf8'");   //  нужно подключиться к базе!

$terms = array(); // создали массив
$maximum 0// переменная для рассчёта максимального значения

$query "SELECT tag, counter FROM `tag`"// в таблице - теги и число использований. Выбираем.

while ($row mysql_fetch_array($query))
{
    
$tag $row['tag'];
    
$counter $row['counter'];
    if (
$counter$maximum$maximum $counter// обновляем максимум. В таблице не должно быть нулей.
    
$terms[] = array('tag' => $tag'counter' => $counter); // добавляем в массив
}

shuffle($terms);  // перемешиваем массив, если нужно.


echo "<div id='tagcloud'><div>\n"// начинаем вывод облака
foreach ($terms as $k// бежим по тегам в массиве
{

    
$percent floor(($k['counter'] / $maximum) * 100);  // рассчёт популярности тега в процентах
   
    // определяем класс для тега из его популярности
    
if ($percent <20)
    {
        
$class 'smallest';
    } elseif (
$percent>= 20 and $percent <40) {
        
$class 'small';
    } elseif (
$percent>= 40 and $percent <60) {
        
$class 'medium';
    } elseif (
$percent>= 60 and $percent <80) {
        
$class 'large';
    } else {
        
$class 'largest';
    }
   
    
// выводим тег
    
echo "<span class='$class'><a href='tag.php?q=" urlencode($k['tag']) . "' title='" $k['tag'] . "'>" $k['tag'] . "</a></span>\n ";
    
// здесь tag.php - страница, на которую создаются ссылки из облака.
}
echo 
"</div></div><br />\n";