PHP and SQL Sever implementation paging display

Source: Internet
Author: User
Tags connect mssql mssql server php and query
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>

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



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.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.