0
내가 SQL 서버의 ROW_NUMBER 함수를 사용하여 페이지 당 10 개 개의 레코드를 표시하려고 나는 경우에만이를 위해 어디서부터 시작을 정의하고 있기 때문에 내 쿼리에 문제가 있다고 생각 2008 년SQL 서버 2008 매김 PHP
레코드는 1에서 10까지 표시되지만 페이지 당 표시되는 레코드의 양은 표시하지 않습니다.
다음 페이지로 가면 SQL 쿼리에 $ per_page 변수를 추가하는 방법을 알지 못하기 때문에 결과가 전혀 표시되지 않습니다.
내가 원하는 건 1 페이지의 처음 10 개 제품 ID를 표시 할 수있다, 나는 "다음"버튼을 클릭하면, 다음 10 개 제품 ID 등
이것은이다, 표시됩니다 내가 지금 가지고 코드 :
$per_page = 10;
if(!isset($_GET['page']))
{
$page = 1;
}
else
{
$page = $_GET['page'];
}
if($page<=1)
{
$start = 0;
}
else
{
$start = $page * $per_page - $per_page;
}
$tsql = " SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY productID) AS
rownum, productID FROM products) AS products1
WHERE rownum >= $start AND rownum <= $per_page";
$num_rows = sqlsrv_num_rows(sqlsrv_query($conn,$tsql));
$num_pages = ceil($num_rows/$per_page);
$stmt = sqlsrv_query($conn,$tsql);
while($row = sqlsrv_fetch_array($stmt)){
echo $row['productID']. "<br/>";
}
$prev = $page - 1;
$next = $page + 1;
echo "<hr>";
//prev
if($prev > 0)
{
echo "<a href='?page=$prev'>prev</a> ";
}
//numbers
$number = 1;
for($number; $number <= $num_pages; $number +=1)
{
if($page==$number)
{
echo " <b>[$number]</b> ";
}
else
{
echo "<a href='?page=$number'>$number</a> ";
}
}
//next
echo "<a href='?page=$next'>next</a>";
대단히 감사합니다. 이제 "내" "다음"및 "이전"버튼으로 모든 페이지를 탐색 할 수 있습니다! 지금 가지고있는 유일한 문제는 내가 구현하고자하는 "숫자"섹션입니다. 내 페이지 번호는 전혀 표시되지 않으며 내 $ num_pages 및 $ num_rows 변수, 특히이 행과 관련이 있다고 생각합니다. "$ num_rows = sqlsrv_num_rows (sqlsrv_query ($ conn, $ tsql));" MySQL의 페이지 매김 튜토리얼과 SQL 서버로 변환하려고했지만, 나는이 라인 어딘가에 실수를했다고 생각합니까? – Alex
@Alex 내가 말했듯이 SQL Server에 익숙하지는 않지만 $ num_rows는 쿼리 (10)의 행 수만 반환하므로 '$ num_pages'는 항상 1입니다. . – jeroen