更改热门标签的字体大小

时间:2015-12-12 23:51:27

标签: php mysql

我在表格中有一些静态标记。

我试图跟踪静态标签的点击次数,我在其他网站上看到(实际上它确实非常好)流行的标签会发生变化。

看看这张图片: enter image description here 此图像显示预期输出。

表格如下:

push ebp
mov ebp, esp

更多点击次数,"更大"字体大小。但字体大小应该是最大40px,最小5px。

我如何从MySQL和PHP计算点击次数的差异并将其显示在+-----------+--------+ | tag | clicks | +-----------+--------+ | Falun | 45 | | Stockholm | 229 | | Borlänge | 77 | | ... | ... | | ... | ... | +-----------+--------+

font-size

然后

SELECT tag, (SELECT COUNT(percentage) FROM tags) AS tag_size FROM tags

非常抱歉伪代码,但我不知道怎么做!

2 个答案:

答案 0 :(得分:1)

首先,您需要找到最大点击次数:

SELECT MAX(`clicks`) FROM `tags`;

我们假设这被分配给一个名为$max_clicks的变量。然后,您需要根据此值缩放磅值。用于执行此操作的公式完全取决于您,但根据点击计数的平方根进行缩放应产生合理的结果:

if ($max_clicks > 0) { // Avoid divide-by-zero error if nothing has been clicked
  $sqrt_max_clicks = sqrt($max_clicks);
  $query = "SELECT `tag`, 5 + 35 * SQRT(`clicks`) / $sqrt_max_clicks FROM `tags`;"
  // ... (Generate tag markup) ...
}

显然,5是最小点数,35是最大和最小点数之间的差异。我假设您希望标签出现在标签列表中,即使它们的点击次数为零。

答案 1 :(得分:0)

因此,您可以使用group by将所有标记记录拉到一起。然后,您可以使用if来设置字体大小。类似的东西:

$sql = 'SELECT tag, count(clicks) AS tag_size FROM tags group by tag';
$sth = $dbh->prepare($sql);
$sth->execute();
$result = $sth->fetchAll();
foreach($result as $row) {
    $size = $row['tag_size'];
    if($size >700 ){
        $font_size = 40;
    } elseif($size >650 ){
        $font_size = 39;
    } elseif($size >650 ){
        $font_size = 38;
    }...
    else {
        $font_size = 5;
}