为什么,为什么,我的分页老是搞不定,就我啊!! 分页啊,上面写错了,是要一页显示五行记录。help 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用这个mysql_num_rows($result)获取记录总数就简单多了或者<?php$i=1; while ($data=mysql_fetch_array($sql) && $i<=5) { printf;$i++;?> SELECT name,age,address,tel,email FROM man LIMIT rec_from, rec_to 查询语句:SELECT name,age,address,tel,email FROM man limit $offset,$pagesize"$offset 是查询的起始记录$pagesize 是每页记录数 在你的代码里应该是5关键是怎么处理这个$offset我的方法是从URL中取页码(如page),根据页码来计算$offsetif(!isset($_GET['page'])) $page=1; //如果URL中不含有页码,则默认是第一页。else $page=$_GET['page']; //取页码$offset=$pagesize*($page-1); //计算起始记录 <br><html><head><title>PHP分页</title></head><body><?$gPageSize= 50; //每页显示的记录数$hostname = "localhost"; //mysql Server$dbuser = "root"; //用户名$dbpasswd = ""; //密码//连接数据库$id = mysql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");//选择数据库$db = mysql_select_db("infodb",$id) or die("无法连接数据库!");$query = "select * from ipinfo";//执行查询语句$rresult = mysql_query($query) or die("无法执行SQL:$query");//$page变量标示当前显示的页if(!isset($page)) $page=1;if($page==0) $page=1;//得到当前查询到的纪录数 $nNumRowsif(($nNumRows= mysql_num_rows($rresult))<=0){echo "<p align=center>没有纪录";exit;};//得到最大页码数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 页,共 $MaxPage 页</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"><?//显示表格头for($iCnt = 0; $iCnt < mysql_num_fields($rresult); $iCnt++){echo "<td>".mysql_field_name($rresult,$iCnt)."</td>" ;}?></tr><?//根据偏移量($page - 1)*$gPageSize,运用mysql_data_seek函数得到要显示的页面if( mysql_data_seek($rresult,($page-1)*$gPageSize) ){$i=0;//循环显示当前纪录集for($i;$i<$gPageSize;$i++){echo "<tr style=\"font-size:12px\">";//得到当前纪录,填充到数组$arr;$arr= mysql_fetch_row($rresult);if($arr){//循环显示当前纪录的所有字段值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"><?//首页和上一页的链接if( $nNumRows>1 && $page>1){$prevPage=$page-1;echo " <a href=$PHP_SELF?page=1>首页</a> ";echo " <a href=$PHP_SELF?page=$prevPage >上一页</a> ";}//下一页和末页的链接if( $page>=1 && $page<$MaxPage){$nextPage= $page+1;echo " <a href=$PHP_SELF?page=$nextPage >下一页</a> ";echo " <a href=$PHP_SELF?page=$MaxPage >末页</a> ";}?></div></body></html> 分页有两种处理方法,各有缺点。第一种直接select *,然后使用mysql_num_rows得到总数,使用mysql_data_seek移动光标第二种使用limit关键字,但是这个得不到总数,需要再select count(*)一下。具体来说,如果一页显示$pagesize条记录,当前是第$page页,则第一种$offset=($page-1)*$pagesize;第二种sql语句后面加上limit ($page-1)*$pagesize,$pagesize相信这样已经足够清楚了^_^ linux 下 php 内存占用巨多,居然导致mysql崩溃 这是什么问题! form表单中type为"hidden"的值能否随while循环变化? 即将配置个服务器,什么样的配置好呢 请教 php 分页!!!!!!!!!!!!!!!!!! 求助PHP网站文件结构 关于referer的问题 cookie的expire时间戳? 请教大家一个PHP注册表单的问题? 同一个页面我有两个表格需要分页,我实例化同一个分页类的时候出问题了 php-4.2.0RC4-win32在win2000server下如何进行配置? 我是一个新手,请问:ASP导出导入EXCEL? 查询显示问题
就简单多了或者<?php
$i=1;
while ($data=mysql_fetch_array($sql) && $i<=5)
{
printf;
$i++;
?>
$offset 是查询的起始记录
$pagesize 是每页记录数 在你的代码里应该是5关键是怎么处理这个$offset
我的方法是从URL中取页码(如page),根据页码来计算$offset
if(!isset($_GET['page']))
$page=1; //如果URL中不含有页码,则默认是第一页。
else
$page=$_GET['page']; //取页码
$offset=$pagesize*($page-1); //计算起始记录
$gPageSize= 50; //每页显示的记录数$hostname = "localhost"; //mysql Server$dbuser = "root"; //用户名$dbpasswd = ""; //密码//连接数据库$id = mysql_connect($hostname,$dbuser,$dbpasswd) or die("无法连接数据库服务器!");//选择数据库$db = mysql_select_db("infodb",$id) or die("无法连接数据库!");$query = "select * from ipinfo";//执行查询语句$rresult = mysql_query($query) or die("无法执行SQL:$query");//$page变量标示当前显示的页if(!isset($page)) $page=1;if($page==0) $page=1;//得到当前查询到的纪录数 $nNumRowsif(($nNumRows= mysql_num_rows($rresult))<=0){echo "<p align=center>没有纪录";exit;};//得到最大页码数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 页,共 $MaxPage 页</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"><?//显示表格头for($iCnt = 0; $iCnt < mysql_num_fields($rresult); $iCnt++){echo "<td>".mysql_field_name($rresult,$iCnt)."</td>" ;}?></tr><?//根据偏移量($page - 1)*$gPageSize,运用mysql_data_seek函数得到要显示的页面if( mysql_data_seek($rresult,($page-1)*$gPageSize) ){$i=0;//循环显示当前纪录集for($i;$i<$gPageSize;$i++){echo "<tr style=\"font-size:12px\">";//得到当前纪录,填充到数组$arr;$arr= mysql_fetch_row($rresult);if($arr){//循环显示当前纪录的所有字段值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"><?//首页和上一页的链接if( $nNumRows>1 && $page>1){$prevPage=$page-1;echo " <a href=$PHP_SELF?page=1>首页</a> ";echo " <a href=$PHP_SELF?page=$prevPage >上一页</a> ";}//下一页和末页的链接if( $page>=1 && $page<$MaxPage){$nextPage= $page+1;echo " <a href=$PHP_SELF?page=$nextPage >下一页</a> ";echo " <a href=$PHP_SELF?page=$MaxPage >末页</a> ";}?></div></body></html>
第一种直接select *,然后使用mysql_num_rows得到总数,使用mysql_data_seek移动光标
第二种使用limit关键字,但是这个得不到总数,需要再select count(*)一下。
具体来说,如果一页显示$pagesize条记录,当前是第$page页,则
第一种$offset=($page-1)*$pagesize;
第二种sql语句后面加上limit ($page-1)*$pagesize,$pagesize
相信这样已经足够清楚了^_^