【发布时间】:2014-05-18 03:28:07
【问题描述】:
我正在尝试创建多个记录列表,每个列表有 4 条记录,但不知道有多少条记录。但是,我无法弄清楚如何处理数学。我手动输入 $n == 5 || $n == 9 等知道它是 stipud 并且不能完全解决问题。谁能帮我处理一下。此外,只有在记录总数不能被 4 整除时,下面的列表才能正常工作。如果可以,它会在最后创建一个空白列表。
$query = "SELECT * FROM `table` WHERE `field` = $whatever";
if ($result = $con->query($query)){
$n = 1
$row_cnt = $result->num_rows;
$total_lists = round($row_cnt / 4, 0);
$current_list = 1;
echo "<ul>List $current_list of $total_lists";
while ($row = $result->fetch_assoc()) {
echo "<li>$row['something']</li>";
if ($n == 5 || $n == 9 || $n == 13 || $n == 17 || $n == 21 || $n ==25 || $n ==29 || $n == 33 || $n == 37 || $n == 41 || $n == 45 || $n == 49 || $n == 53 || $n == 57 || $n == 61 || $n == 65 || $n == 69 || $n == 73 || $n == 77){
echo "</ul>";
$current_list = $current_list + 1;
echo "<ul>List $current_list of $total_lists";
}
$n = $n + 1;
}
echo "</ul>";
}
提前感谢您的帮助。 :)
已解决:
$query = "SELECT * FROM `table` WHERE `field` = $whatever";
if ($result = $con->query($query)){
$n = 0
$row_cnt = $result->num_rows;
$total_lists = ceil($row_cnt / 4);
$current_list = 1;
echo "<ul>List $current_list of $total_lists";
while ($row = $result->fetch_assoc()) {
$n++;
echo "<li>$row['something']</li>";
if ($row_cnt > 4) {
if ($n % 4 === 0) {
echo "</ul>";
$current_list = $current_list + 1;
echo "<ul>List $current_list of $total_lists";
}
}
}
echo "</ul>";
}
【问题讨论】:
-
或者,您可以将数组结果按四个分块 (
array_chunk()),然后将它们按四个分组,然后相应地循环它们