为什么分页显示的数据相同.... 在for($i=1;$i<$pagesize;$i++){ //显示当前记录集前面加上下面这句mysql_fseek($result,($page-1)*$pagesize); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql那么方便的limit不用?每次把整个记录集查出来,太浪费了吧 mysql_fseek($result,($page-1)*$pagesize); 加上错了.limit 怎么用呀. select * from mail limit ($page-1)*$pagesize,$pagesize mysql 的limit优化的太好了,是首选 http://pear.php.net/package/Pager个人感觉对我这样的懒蛋比较好用。adodb也有类似的东西的啊。 去看看别人写的分页类吧,建议还是用limit来做 $sql="select * from mail limit ($page-1)*$pagesize,$pagesize"; <?phpif(empty($_GET['page'])){$page=1;}else{$page=$_GET['page'];}$chang=4;//每页记录数$sql="select * from 表名";$sel=mysql_db_query($conf_dbname,$sql,$db);$num=mysql_num_rows($sel);if($num%$chang) {$yie=intval($num/$chang)+1;}else {$yie=$num/$chang;}echo "总记录".$num."条 共分为".$yie."页显示 当前为第".$page."页<br>";if($page>1) {echo" <a href=\"s19_1.php?page=1\">第一页</a> <a href=\"s19_1.php?page=".($page-1)."\">上一页</a> "; }else {echo"首页 上一页 ";}if($page<$yie) {echo " <a href=\"s19_1.php?page=".($page+1)."\">下一页</a> <a href=\"s19_1.php?page=".($yie)."\">最后页</a> ";}else {echo"下一页 尾页";}//asc是按升续排列,desc是按降续排列$sql="select * from xf_user order by id asc limit ".($page-1)*$chang.",$chang";$sel=mysql_db_query($conf_dbname,$sql,$db);?><form action="" name="ffff" method="post"><table cellpadding="0" cellspacing="0" border="1"><tr><td align="center">ID</td><td align="center">用户名</td><td align="center">密码</td><td align="center">性别</td><td align="center">年龄</td><td align="center">生日</td><td align="center">爱好</td></tr><?phpwhile($rut=mysql_fetch_array($sel)) {echo "<tr> <td>$rut[id] </td> <td>$rut[username] </td> <td>$rut[password] </td> <td>$rut[sex] </td> <td>$rut[age] </td> <td>$rut[birthday] </td> <td>$rut[like11] </td> <td> <a href=s19_2.php?action=1&did=$rut[id]>修改</a> <a href=s19_2.php?action=0&did=$rut[id]>删除</a> </td></tr>"; //$_SESSION['uid']=$rut[id]; }?></table></form>参考一下本程序,也许这个你可以用到,用这个翻页很简单的 给你个分页吧,改下参数,换个SQL语句就ok了。--------------------------------------------------------<?$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> ";}?>--------------------------------------------------------------------- 请问一下,为何$sql="select * from mail limit ($page-1)*$pagesize,$pagesize";中的($page-1)要减一啊? 请问一下,为何$sql="select * from mail limit ($page-1)*$pagesize,$pagesize";中的($page-1)要减一啊?这是因为,limit是一段一段取的,比如你这个程序是一页取两条的,第一页是1~2条记录取出,第二页是3~4条记录取出,以此类推,所以要$page-1。 新手发问:用putty怎么绑定域名 我也来发一个关于PHP行不行的月经帖 求一个字符串操作函数 在函数里include文件时会何会把文件名打印出来 Fckeditor for PHP 上传路径问题(急急) PHP+Mysql+flex 回应http post消息不成功 运行phpmyadmin,但却再现这样的提示,什么意思 我做的留言本上传后怎么提示我“不能连接服务器!” 很简单,每个写过php的人应该都知道!求可用代码! 我的站点出错啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 关于php在freebsd上问题
加上错了.limit 怎么用呀.
个人感觉对我这样的懒蛋比较好用。
adodb也有类似的东西的啊。
if(empty($_GET['page']))
{
$page=1;
}else{
$page=$_GET['page'];
}
$chang=4;//每页记录数
$sql="select * from 表名";
$sel=mysql_db_query($conf_dbname,$sql,$db);
$num=mysql_num_rows($sel);
if($num%$chang)
{$yie=intval($num/$chang)+1;}
else
{$yie=$num/$chang;}
echo "总记录".$num."条 共分为".$yie."页显示 当前为第".$page."页<br>";if($page>1)
{echo"
<a href=\"s19_1.php?page=1\">第一页</a>
<a href=\"s19_1.php?page=".($page-1)."\">上一页</a>
"; }
else
{echo"首页 上一页 ";}
if($page<$yie)
{echo "
<a href=\"s19_1.php?page=".($page+1)."\">下一页</a>
<a href=\"s19_1.php?page=".($yie)."\">最后页</a>
";}
else
{echo"下一页 尾页";}//asc是按升续排列,desc是按降续排列
$sql="select * from xf_user order by id asc limit ".($page-1)*$chang.",$chang";
$sel=mysql_db_query($conf_dbname,$sql,$db);
?>
<form action="" name="ffff" method="post">
<table cellpadding="0" cellspacing="0" border="1">
<tr><td align="center">ID</td><td align="center">用户名</td><td align="center">密码</td><td align="center">性别</td><td align="center">年龄</td><td align="center">生日</td><td align="center">爱好</td></tr>
<?php
while($rut=mysql_fetch_array($sel))
{echo "<tr>
<td>$rut[id] </td>
<td>$rut[username] </td>
<td>$rut[password] </td>
<td>$rut[sex] </td>
<td>$rut[age] </td>
<td>$rut[birthday] </td>
<td>$rut[like11] </td>
<td> <a href=s19_2.php?action=1&did=$rut[id]>修改</a> <a href=s19_2.php?action=0&did=$rut[id]>删除</a> </td></tr>";
//$_SESSION['uid']=$rut[id];
}
?>
</table>
</form>参考一下本程序,也许这个你可以用到,用这个翻页很简单的
--------------------------------------------------------
<?
$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> ";}?>---------------------------------------------------------------------
中的($page-1)要减一啊?
中的($page-1)要减一啊?这是因为,limit是一段一段取的,比如你这个程序是一页取两条的,第一页是1~2条记录取出,第二页是3~4条记录取出,以此类推,所以要$page-1。