`
chensx
  • 浏览: 48831 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

PHP分页原理

    博客分类:
  • 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>

 

六. 界面效果图

 

  • 大小: 22.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics