【发布时间】:2017-11-14 20:08:30
【问题描述】:
我正在尝试从 MySQL 查询数据。我需要对数据表进行分页。请参阅下面的代码;你可以看到我在限制之后使用了“OFFSET”。我也可以用","
但是,我都尝试了,但 OFFSET 没有显示任何结果,而“,”显示结果,但无论我在哪个页面上,都会显示相同的 10 个结果。
代码如下:
// define how many results you want per page
$results_per_page = 10;
// find out the number of results stored in database
$sql='SELECT * FROM ETF';
$result = mysqli_query($con,$sql);
$number_of_results = mysqli_num_rows($result);
// determine number of total pages available
$number_of_pages = ceil($number_of_results/$results_per_page);
// determine which page number visitor is currently on
if (!isset($_GET["page"])) {
$page = 1;
} else {
$page = $_GET["page"];
}
// determine the sql LIMIT starting number for the results on the displaying page
$this_page_first_result = ($page-1)*$results_per_page;
// retrieve selected results from database and display them on page
$sql='SELECT * FROM ETF LIMIT '. $this_page_first_result . " OFFSET " . $results_per_page;
$result = mysqli_query($con, $sql);
while($row = mysqli_fetch_assoc($result)) {
echo $row['ETF'] . ' ' . $row['ETF NAME']. '<br>';
}
// display the links to the pages
for ($page=1;$page<=$number_of_pages;$page++) {
echo '<a href="index.php/stocks/sec-forms/?page=' . $page . '">' . $page. '</a>';
}
【问题讨论】:
-
您需要在限制 10 偏移 30 等之后更改偏移量而不是限制限制 10 偏移量 20 等。
-
不要使用
OFFSET;见stackoverflow.com/a/48292658/1766831
标签: php mysql pagination partition