我想创建多列表的记录与每个列表4记录而不知道有多少记录。但是,我无法弄清楚如何处理数学。我手动输入$ n == 5 || $ n == 9等知道它是有条件的,并不能完全解决问题。任何人都可以帮助我如何处理。而且,只有在记录总数不能被4除以4的情况下,下面的列表才能正常工作。如果可以,它将在最后创建一个空列表。创建每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>";
}
有人听说过模运算符:http://www.php.net/manual/en/language.operators.arithmetic.php? – CodeZombie
或者,您可以将数组结果('array_chunk()')四舍五入,然后将它们分组为四,然后相应地循环它们。 – user1978142