【发布时间】:2014-10-11 17:56:24
【问题描述】:
我正在尝试创建一个标签云系统,从 PHP/SQL 获取其值,但它似乎工作不规律,只给出了少数预期的结果。是什么导致了这种奇怪的行为?
据我所知,它应该循环总共 20 次 (0-19) 并且每次将字符串添加到数组中。
系统首先从我的数据库中按降序获取 20 个最受欢迎的标签,一旦得到它,我就创建一个字符串并设置字体大小。然后将该字符串存储在一个数组中,并使用一个随机数数组回显,为云提供一个随机顺序。
然后我为循环迭代增加 i 的值,同时减小下一个不太受欢迎的标签的字体大小。
<h1>Tag Cloud</h1>
<?php
$sql = "SELECT * FROM tags ORDER BY count DESC";
$tags_query = mysqli_query($db_conx, $sql);
$i = 0;
$tag_array = array();
$tag_size_max = 36;
$tag_size_min = 16;
$numbers = range(0, 19);
shuffle($numbers);
do {
$row = mysqli_fetch_array($tags_query, MYSQLI_ASSOC);
$tag = $row["tag"];
$tag_count = $row["count"];
$tag_array[] = "<p style='font-size:".$tag_size_max."px; padding:0px;'>".$tag."</p>";
echo $tag_array[$numbers[$i]];
$i++;
$tag_size_max--;
} while ($i < 20);
?>
你可以在我的网站http://www.vwrx-project.co.uk的页脚看到它的工作原理
【问题讨论】:
标签: php loops do-while tag-cloud