У меня проблема, когда я делаю запрос, и он возвращается примерно с 30 страницами, я надеялся вернуть его с 1,2,3 ..., 30 вместо 1, 2,3,4,5,6,7,8 и др. смотрите ниже код, который я использовал:PHP Sqlsrv Pagination
function getPage($stmt, $pageNum, $rowsPerPage)
{
$offset = ($pageNum - 1) * $rowsPerPage;
$rows = array();
$i = 0;
while(($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_NUMERIC,
SQLSRV_SCROLL_ABSOLUTE, $offset + $i)) && $i < $rowsPerPage)
{
array_push($rows, $row);
$i++;
}
return $rows;
}
// Set the number of rows to be returned on a page.
$rowsPerPage = 30;
// Connect to the server.
$serverName = 'test';
$connOptions = array("Database"=>"test");
$conn = sqlsrv_connect($serverName, $connOptions);
if (!$conn)
die(print_r(sqlsrv_errors(), true));
// Define and execute the query.
// Note that the query is executed with a "scrollable" cursor.
$sql = "select * from info";
$stmt = sqlsrv_query($conn, $sql, array(), array("Scrollable" => 'static'));
if (!$stmt)
die(print_r(sqlsrv_errors(), true));
// Display the selected page of data.
echo "<table border='1px' align='center'>";
$pageNum = isset($_GET['pageNum']) ? $_GET['pageNum'] : 1;
$page = getPage($stmt, $pageNum, $rowsPerPage);
foreach($page as $row)
echo "<tr><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td></tr>";
echo "</table>";
?>
<table align='center'>
<?php
// Get the total number of rows returned by the query.
// Display links to "pages" of rows.
$rowsReturned = sqlsrv_num_rows($stmt);
if($rowsReturned === false)
die(print_r(sqlsrv_errors(), true));
elseif($rowsReturned == 0)
{
echo "No rows returned.";
exit();
}
else
{
// Display page links.
$numOfPages = ceil($rowsReturned/$rowsPerPage);
for($i = 1; $i<=$numOfPages; $i++)
{
$pageLink = "?pageNum=$i";
print("<a href=$pageLink>$i</a> ");
}
echo "<br/><br/>";
}
sqlsrv_close($conn);
Я думаю, этот вопрос лучше подходит для обмена стеком кода, так как люди могут прокомментировать ваш код и предложить улучшения: http://codereview.stackexchange.com/ – Maximus2012
Я добавил этот вопрос к предлагаемому форуму, но был уведомлен о том, что он не подходит для сайта. – phpyesphp
Да, я видел, что оно было приостановлено, но я верю, что здесь могут быть другие вопросы, такие как здесь или на обмене стека кода. Вам просто нужно его искать. – Maximus2012