2008/05/09

PHPタグクラウド

参考サイト

//このSQL文が分かれば簡単
$query = "SELECT thing AS tag, COUNT(id) AS quantity
FROM my_table
GROUP BY thing
ORDER BY thing ASC";

$result = mysql_query($query);

//タグをkeyにして 数をvalueにしてarrayにする
while ($row = mysql_fetch_array($result)) {
$tags[$row['tag']] = $row['quantity'];
}

$max_size = 250;//フォントサイズの最大
$min_size = 100;//フォントサイズの最小

//quantityの最小値と最大値を取得
$max_qty = max(array_values($tags));
$min_qty = min(array_values($tags));

//最大値と最小値の差がない時の処理
$spread = $max_qty - $min_qty;
if (0 == $spread) {
$spread = 1;
}

//変化のステップを決める
$step = ($max_size - $min_size)/($spread);

//出力
foreach ($tags as $key => $value) {

$size = $min_size + (($value - $min_qty) * $step);

echo '<a href="#" style="font-size: '.$size.'%"';
echo ' title="'.$value.' things tagged with '.$key.'"';
echo '>'.$key.'</a> ';

}

0 件のコメント: