2015-07-22 45 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