Php 选择查询以使用TOP进行分页
我已经想在我的页面上创建分页。我使用SQL Server和PDO 下面是我的查询代码Php 选择查询以使用TOP进行分页,php,sql-server,Php,Sql Server,我已经想在我的页面上创建分页。我使用SQL Server和PDO 下面是我的查询代码 if (isset($_GET['page_no']) && $_GET['page_no']!="") { $page_no = $_GET['page_no']; } else { $page_no = 1; }
if (isset($_GET['page_no']) && $_GET['page_no']!="") {
$page_no = $_GET['page_no'];
} else {
$page_no = 1;
}
$total_records_per_page = 3;
$offset = ($page_no-1) * $total_records_per_page;
$previous_page = $page_no - 1;
$next_page = $page_no + 1;
$adjacents = "2";
$sql_count = $conn->prepare("SELECT COUNT(*) As total_records FROM booking");
$sql_count->execute();
$total_records = $sql_count->fetch();
$total_no_of_pages = ceil($total_records['total_records'] / $total_records_per_page);
$second_last = $total_no_of_pages - 1; // total page minus 1
$query = $conn->prepare("SELECT TOP $offset, $total_records_per_page * FROM booking LEFT JOIN room ON booking.Room_ID = room.Room_ID WHERE Admin_email = 'hazim_m@topglove.com.my'
ORDER BY booking.Book_No DESC");
我从错误中得到的是
“,”附近的[Microsoft][ODBC驱动程序17 for SQL Server][SQL Server]语法不正确。在
我能知道如何解决这个问题吗?试试这个,如果是错误的,请纠正我:
select top $total_records_per_page * from (
select *, ROW_NUMBER() over (order by booking.Book_No DESC) as r_n_n
from booking ..... where ....
) someVariable where r_n_n >=$offset
引用:根据您编写的SQL查询,在*之前缺少,因为列名在select查询中以分隔。 请试试这个
$query = $conn->prepare("SELECT TOP 1 $offset, $total_records_per_page, * FROM booking LEFT JOIN room ON booking.Room_ID = room.Room_ID WHERE Admin_email = 'hazim_m@topglove.com.my'
ORDER BY booking.Book_No DESC");
选中顶部仅接受一个参数。我建议用谷歌搜索你的SQL Server版本是什么?@Zhorov SQL Server2016@F.Lampard好的,那么就支持OFFSET-FETCH子句。