我有一个 MySQL 查询,我将其保存到一个变量中以在页面上输出。我有一个无序列表中的数据,但我试图使用 3 个向左浮动的无序列表将数据分成三列。这是我当前的代码:
$sqlCommand =
"SELECT list_specialty.id, list_specialty.specialty FROM list_specialty
ORDER BY list_specialty.specialty ASC";
$query = mysqli_query($myConnection,$sqlCommand) or die (mysqli_error($myConnection));
$specialtyDisplay = '';
$num = mysqli_num_rows($query);
$split = intval($num/3); //number of items in every column
$i = 0;
while ($row = mysqli_fetch_array($query)) {
$specialtyid = $row["id"];
$specialtyname = $row["specialty"];
$specialtyDisplay .=
'<li><a href="doctor.php?specialty=' . $specialtyid . '">' . $specialtyname . '</a></li>';
$i++;
if ($i == $split) {
$specialtyDisplay .= '</ul> <ul>';
$i = 0;
}
}
只要我的数据完全可以被 3 整除(等列),这段代码就可以很好地工作。但是,当我的总行数不能被 3 整除时,上面的代码将不起作用。
我需要一个平衡列的解决方案,所以我可以有 3 个相等的列,第一列中有一个额外的元素,或者第一列和第二列中有一个额外的元素。
我需要在我的代码中更改什么来解决这个问题?