首页 > 解决方案 > 使用 SQL Server 进行分页不会返回正确的结果

问题描述

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Pagination</title>
</head>
<body>
<?php

// define how many results you want per page
$results_per_page = 3;
// find out the number of results stored in database
$AllRows = count($sql->query("SELECT * FROM $dbs[WEB2].._WebsiteNews")->fetchAll());
// determine number of total pages available
$number_of_pages = ceil($AllRows/$results_per_page);
// determine which page number visitor is currently on
if (!isset($_GET['news'])) {
  $page = 1;
} else {
  $page = $_GET['news'];
}
// 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
$PlayersQuery = "SELECT  * FROM $dbs[WEB2].._WebsiteNews ORDER BY No OFFSET $this_page_first_result ROWS FETCH NEXT $results_per_page ROWS ONLY ;";
    $query = $sql->Query1($PlayersQuery);
while ($row = $sql->QueryFetchArray($query)) {
  echo $row['No'] . ' ' . $row['Title']. '<br>';
}
// display the links to the pages
for ($page=1;$page<=$number_of_pages;$page++) {
  echo '<a href="/news=' . $page . '">' . $page . '</a> ';
}
?>
</body>
</html>

我有 7 页,我只得到相同的结果(每页 3 个相同的结果);不知道有什么问题。

我一直在寻找使用 SQL Server 来实现它,但都使用 MySQL;如果有人知道如何使它工作,请帮助我 - 谢谢

标签: phpsqlsql-server

解决方案


MySQL

$PlayersQuery = "SELECT  * FROM $dbs[WEB2].._WebsiteNews ORDER BY No LIMIT $this_page_first_result, $results_per_page;";

微软SQL

$PlayersQuery = "SELECT  * FROM $dbs[WEB2].._WebsiteNews ORDER BY No 
OFFSET $this_page_first_result ROWS
FETCH NEXT $results_per_page ROWS ONLY;

推荐阅读