2015-07-22 56 views
1

我发现,从数据库中选择$x元素的数量有限的n组,我可以使用如何检索多个元素

$sql="SELECT * FROM user ORDER BY id LIMIT $x"; 

所以如果$ X = 10这个查询将检索第10来自数据库的元素。

但我怎么能检索的第n个元素$x

例如,如果$n=5$x=20我想要检索20个元素,以便20个元素成为数据库中的第5个20个元素,对于此示例,数据库中的80-100个元素是他们的ID。

enter image description here

我怎么能这样做?

回答

1
<?php 
    $entriesPerPage = 20; // Amount of results shown per page 
    $activePage  = 5; // The active page 

    $offset = ($activePage - 1) * $entriesPerPage; 
    $sql = "SELECT * FROM `user` ORDER BY `id` LIMIT $offset, $entriesPerPage"; 
    // ... 
?> 
1
$m = $n-1; 

$start = $m*$x; 

$sql="SELECT * FROM user ORDER BY id LIMIT $start, $x"; 
+0

“LIMIT”的第二个参数表示结果的数量,而不是偏移量。 –

1
SELECT * FROM user ORDER BY id LIMIT 80,20 
0

假设我们要选择1所有记录 - 30(含)从一个名为 “订单” 表。然后,SQL查询应该是这样的:

$sql = "SELECT * FROM Orders LIMIT 30"; 

当上面的SQL查询运行时,它会返回第30条记录。

如果我们要选择记录什么16 - 25(含)?

MySQL还提供了一种方法来处理这个问题:通过使用抵消。

SQL查询的下面写着 “只返回10条记录,开始记录16(OFFSET 15)”:

$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15"; 

您也可以使用更短的语法来达到相同的结果:

$sql = "SELECT * FROM Orders LIMIT 15, 10"; 

注意,当你使用一个逗号的数字颠倒。
参考:Click here