Using PHP and SQL Sever to implement pagination display

Source: Internet
Author: User
Tags implement connect sql server mssql mssql server sql php and query
Pagination | shows that when we browse the page, we often see pages 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>

&LT;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.





Related Article

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.