pagination | show "Summary"
we use the Mssql_num_rows () function to get the number of records in the current query, and the Mssql_data_seek () function is the key function of pagination display
When we browse the page, we often see pages that are displayed in pagination. Paging is a useful way to provide a large amount of data to the viewer. In the following article, we'll show you how to use PHP and MS SQL Server to implement a paging display of records in a database.
In this example, we use the mssql_num_rows () function to get the number of records of the current query, combined with the page size sgpagesize, to get the current recordset to display the number of pages, for the pagination display laid the foundation. The Mssql_data_seek () function is a key function of pagination, where the second parameter indicates the offset of the current record, and the page to be displayed is found based on that offset.
Paging Display source program:
<br>
<title>php Paging </title>
<body>
?
To make it easier to understand and apply to work faster, we take MS SQL Server's Northwind database Customers table for example.
$gPageSize = 10; Number of records displayed per page
$hostname = "localhost"; MSSQL Server
$dbuser = "sa"; User name
$DBPASSWD = "1111111"; Password
Connecting to a database
$id = Mssql_connect ($hostname, $dbuser, $dbpasswd) or die ("Unable to connect to the database server!") ");
Select database, for convenience, take the Northwind database of MSSQL Server for example
$db = mssql_select_db ("Northwind", $id) or die ("Unable to connect to the database!") ");
Take the Customers table as an example to build the query string
$query = "SELECT * from Customers";
Executing query statements
$rresult = Mssql_query ($query) or Die ("Unable to execute SQL: $query");
$page variable to indicate the currently displayed page
if (!isset ($page)) $page = 1;
if ($page ==0) $page = 1;
The number of records to get the current query $nNumRows
if (($nNumRows = Mssql_num_rows ($rresult)) <=0)
{
echo "<p align=center> no Record";
Exit
};
Get the maximum number of pages maxpage
$MaxPage = (int) ceil ($nNumRows/$gPageSize);
if ((int) $page > $MaxPage)
$page = $maxPage;
?>
<table align= "center" width= "80%" border=0> <tr><td><? echo "<font size=2>
$page page, total $MaxPage page </font> "; ></td><td></td></tr></table>
<table align= "center" width= "80%" border= "1" cellspacing= "0" cellpadding= "4" bordercolorlight= "#CC9966" bgcolor= "# 00f2ee "bordercolordark=" #FFFFFF "class=" LZH ">
<tr bgcolor= "#F7F2ff" style= "Font-size:14.8px;font-weight:bold" >
?
Show Table Headers
for ($iCnt = 0; $iCnt < Mssql_num_fields ($rresult); $iCnt + +)
{
echo "<td>". Mssql_field_name ($rresult, $iCnt). " </td> ";
}
?>
</tr>
?
Using the Mssql_data_seek function to get the page to be displayed based on the offset ($page-1) * $gPageSize
if (Mssql_data_seek ($rresult, ($page-1) * $gPageSize))
{
$i = 0;
Loop to display the current record set
for ($i; $i < $gPageSize; $i + +)
{
echo "<tr style=\" font-size:12px\ ">";
Gets the current record, fills the array $arr;
$arr = Mssql_fetch_row ($rresult);
if ($arr)
{
Loops through all field values for the current record
for ($nOffSet = 0; $nOffSet < count ($arr); $nOffSet + +)
{
echo "<td>". $arr [$nOffSet]. " </td> ";
}
}
echo "</tr>";
}
}
?>
</table>
<br>
<HR size=1 width=80%>
<div align=center style= "font-size:12px" >
?
Links to Home and previous pages
if ($nNumRows >1 && $page >1)
{
$prevPage = $page-1;
echo "<a href= $php _self?page=1> home </a>";
echo "<a href= $php _self?page= $prevPage > Prev </a>";
}
Links to the next and last pages
if ($page >=1 && $page < $MaxPage)
{
$nextPage = $page +1;
echo "<a href= $php _self?page= $nextPage > Next </a>";
echo "<a href= $php _self?page= $MaxPage > Last </a>";
}
?>
</div>
</body>
By making some modifications to the script above, you can create your own server-side paging display script.