首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改流行标签的字体大小

更改流行标签的字体大小
EN

Stack Overflow用户
提问于 2015-12-12 23:51:27
回答 2查看 111关注 0票数 1

我的桌子上有几个静态标签。

我试图跟踪静态标签上的点击情况,我在其他网站上看到(实际上非常好)流行标签的变化就是大小。

看一看这张图片:

这个图像显示了预期的输出。

这张桌子是这样的:

代码语言:javascript
运行
复制
+-----------+--------+
|    tag    | clicks |
+-----------+--------+
| Falun     | 45     |
| Stockholm | 229    |
| Borlänge  | 77     |
| ...       | ...    |
| ...       | ...    |
+-----------+--------+

点击越多,字体大小越大。但是字体大小应该是最大40 5px,最小5 5px。

如何从MySQL和PHP中计算点击量的差异并在font-size中显示

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

然后

代码语言:javascript
运行
复制
foreach($tags as $tag){
    <a href="#" style="font-size: <?php echo $tag->tag_size ?>px"><?php echo $tag->tag ?></a>
}

很抱歉有伪代码,但是我不知道怎么做!

EN

回答 2

Stack Overflow用户

发布于 2015-12-13 01:32:03

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

代码语言:javascript
运行
复制
SELECT MAX(`clicks`) FROM `tags`;

让我们假设这是分配给一个名为$max_clicks的变量。然后,您需要根据这个值缩放点大小。您使用的公式完全取决于您,但是根据单击计数的平方根进行缩放应该会产生合理的结果:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2015-12-13 00:46:17

因此,您可以使用group by将所有标记记录放在一起。然后,您可以使用ifs来设置字体大小。类似于:

代码语言:javascript
运行
复制
$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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34246371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档