我想制作如下数据
<ul>
1 | Adam
2 | Bruno <----- using LIMIT 3
3 | Charlie
</ul>
<ul>
4 | Dowm
5 | Emely <----- using LIMIT 3
6 | Fanta
</ul>
<ul>
7 | Ghost
8 | Heli <----- using LIMIT 3
9 | India
</ul> ..... etc
这是我的代码
$query = "select * from data LIMIT 3";
$result = $mysqli->query($query);
echo "<ul>";
while ($row = $result->fetch_array(MYSQLI_BOTH)){
$id = $row['id']; $name = $row['name'];
echo $id ."|". $name;
}
echo "</ul>";
$query2 = "select * from data LIMIT 3 AFTER id number 3"; <--- here
$result2 = $mysqli->query($query2);
echo "<ul>";
while ($row2 = $result2->fetch_array(MYSQLI_BOTH)){
$id2 = $row2['id']; $name2 = $row2['name'];
echo $id2 ."|". $name2;
}
echo "</ul>";
所以实际上只有3分,但随后是数据。 select * from data LIMIT 3 AFTER id number 3"
..我不想合并,因为不同的地方。是否有可能导出3的任意倍数?只有一个选择?仅使用一个select * from data LIMIT 3
答案 0 :(得分:2)
不要在SQL中使用LIMIT。在PHP中使用计数器,并在每三行后添加"</ul><ul>"
:
$query = "select * from data";
$result = $mysqli->query($query);
$counter = 0;
echo "<ul>";
while ($row = $result->fetch_array(MYSQLI_BOTH)){
if ($counter != 0 && $counter % 3 == 0) {
echo "</ul><ul>";
}
$id = $row['id']; $name = $row['name'];
echo "<li>" . $id ."|". $name . "</li>";
++$counter;
}
echo "</ul>";
答案 1 :(得分:0)
您可以一起使用限制和偏移。所以限制是3。 偏移后的想法是:只返回3条记录,从记录偏移量+ 1开始。
创建变量$ offset = 0然后将此变量递增3。 所以你的查询看起来像 $ query =“select * from data limit 3 offset”。$ offset;
我想这可以帮助你继续。