如何在一个表中分离mysql上的数据?

时间:2017-01-07 16:16:48

标签: php mysql sql

我想制作如下数据

<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

2 个答案:

答案 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;

我想这可以帮助你继续。