PHP分页原理

一. sql语句limit的用法

     select * from table_name ... limit start_pos, item_counts;

     start_pos : 开始位置, item_counts : 操作条数

 

二. 分页的一种公式

    1.原理 :将数据库中的结果集,分成一段一段的来显示。

    2.分段 :select * from table_name limit 0, 10; (前10条记录)

                select * from table_name limit 10, 10; (第11至20条记录)

    3.公式 :select * from table_name limit (nPage-1)*nPageSize, nPageSize;

                nPage : 当前页数,nPageSize : 每页条数

 

三. parse_url($url)

    parse_url()是将url解析成具有固定键值名称的数组的函数.

 

四. $_SERVER["REQUEST_URI"]

    预定义服务器变量的一种,所有$_SERVER开头的都叫预定义服务器变量,REQUEST_URI的作用是取得当前URI,也就是除域名外后面完整的路径。

    当前页:http://www.baidu.com/home.index?usr=user1&id=123456

    $_SERVER["REQUEST_URI"]为:/home.index?usr=user1&id=123456

 

五. 代码

<table width="60%" border="1" cellpadding="5" cellspacing="1" bgcolor="#add3ef">

<?
	// 1 connect to database
	$link = @mysql_connect("localhost", "root", "") or die ("connect to mysql failed");
    @mysql_select_db("csxdb", $link) or die ("not find db student");
    mysql_query("set names 'GBK'");

	// 2 path of local page
	$url = $_SERVER["REQUEST_URI"];
	$arr = parse_url($url);
	$path = $arr[path];

	// 3 total num of records
	$rset = mysql_query("select * from student");
	$nums = mysql_num_rows($rset);

	// 4 some initialized variable
	$nPageSize = 5; // page size
	$nsPos = 0;     // start postion of record
	$nPage = 1;     // current page order

	// 5 if request
	if ($_GET[page])
	{
		$nPage = $_GET[page];
		$nsPos = ($nPage-1) * $nPageSize;
	}

	// 6 echo the link text
	if ($nums > $nPageSize)
	{
		$nTmp = ceil($nums/$nPageSize);
		echo "共".$nTmp."页"." 第".$nPage."页&nbsp;"
		     ."<a href=$path?page=".($nPage<=1?1:$nPage-1).">上一页</a>&nbsp;"
		     ."<a href=$path?page=".($nPage<$nTmp?$nPage+1:$nTmp)
			 .">下一页</a><br>";
	}

	// 7 select data from db and show it on page
	$rset = mysql_query("select * from student limit $nsPos, $nPageSize");
	while ($row = mysql_fetch_array($rset))
	{
?>	
		<tr>
			<td><?=$row[sno]?></td>
			<td><?=$row[sname]?></td>
			<td><?=$row[sage]?></td>
			<td><?=$row[saddr]?></td>
		</tr>
<?
	}

	mysql_close($link);
?>

</table>

 

六. 界面效果图

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值