mysql分页的原理、php实现分页
2023-12-13 05:46:09
1、首先了解SQL语句中的limit用法
SELECT * FROM table …… limit 开始位置 , 操作条数 (其中开始位置是从0开始的)
取前20条记录:
SELECT * FROM table …… limit ? 0 , 20
从第11条开始取20条记录:
SELECT * FROM table …… limit ? 10 , 20??
LIMIT n 和 LIMIT 0,n的意思是一样的。
?如select * from table LIMIT 5; //返回前5行,和 select * from table LIMIT 0,5一样
2、分页原理
所谓分页显示,也就是将数据库中的结果集,一段一段显示出来。
怎么分段,当前在第几段 (每页有几条,当前再第几页)
前10条记录:select * from table limit 0,10
第11至20条记录:select * from table limit 10,20
第21至30条记录:select * from table limit 20,30
分页公式:
(当前页数 - 1 )X 每页条数 , 每页条数
?Select * from table limit ($Page- 1) * $PageSize, $PageSize?
3.php原生代码:?
<?php
include("conn.php");
$pagesize=2; //设置每页显示2个记录
$url=$_SERVER["REQUEST_URI"];
$url=parse_url($url);
$url=$url[path];
$numq=mysql_query("SELECT * FROM `message`");
$num = mysql_num_rows($numq);
if($_GET){
$pageval=$_GET;
$page=($pageval-1)*$pagesize;
$page.=',';
}
if($num > $pagesize){
if($pageval<=1)$pageval=1;
echo "共 $num 条".
" <a href=$url?page=".($pageval-1).">上一页</a> <a href=$url?page=".($pageval+1).">下一页</a>";
}
$SQL="SELECT * FROM `message` limit $page $pagesize ";
$query=mysql_query($SQL);
while($row=mysql_fetch_array($query)){
?>
<table width=500 border="0" cellpadding="5" cellspacing="1" bgcolor="#add3ef">
<tr bgcolor="#eff3ff">
<td>标题:<?php echo $row[title]?></td> <td>时间:<?php echo $row[lastdate]?></td>
</tr>
<tr bgcolor="#eff3ff">
<td> 用户:<?php echo $row[user]?></td><td></td>
</tr>
<tr>
<td>内容:<?php echo htmtocode($row[content]);?></td>
</tr>
<br>
</table>
<?php
}
?>
header("Content-Type:text/html;charset=GB2312");
$pagesize=10;
//echo $_POST['page'];
$result = mysql_query("Select count(DISTINCT hotelname) FROM ".TBL_HOTELS);
$myrow = mysql_fetch_array($result);
$numrows=$myrow[0];
$pages=intval($numrows/$pagesize);
if ($numrows%$pagesize)
$pages++;
if (isset($_POST['page'])){
$page=intval($_POST['page']);
}
else{
//设置为第一页
$page=1;
}
$first=1;
$prev=$page-1;
$next=$page+1;
$last=$pages;
//计算记录偏移量
$offset=$pagesize*($page - 1);
//读取指定记录数
$result=mysql_query("select `hotelname` , count( * ) from ".TBL_HOTELS." GROUP BY `hotelname` order by id desc limit $offset,$pagesize");
$num = mysql_num_rows($result);
while ($row = mysql_fetch_array($result,MYSQL_NUM)) {
$hotelname[] = $row[0];
$countpeople[] = $row[1];
}
for($a=0;$a<$num;$a++)
{
//$result=mysql_query("select count(title) from " . TBL_Comments ." where `title`=\\"".$title[$a]."\\"");
//$row = mysql_fetch_row($result);
echo "<TABLE style=\\"MARGIN-BOTTOM: 20px\\" cellSpacing=0 cellPadding=0 width=100% border=0>\\n";
echo "<TBODY>\\n";
echo "<TR>\\n";
echo "<TD style=\\"PADDING-TOP: 5px\\" vAlign=top align=left width=80>\\n";
//rating_bar($title[$a],5);
echo "</TD>\\n";
echo "<TD style=\\"PADDING-TOP: 5px\\" align=left width=100%><A title=$hotelname[$a] style=\\"FONT-SIZE: 14px\\" href=#>$hotelname[$a]</A>\\n";
echo "</TD></TR>\\n";
echo " <TR>\\n";
echo "<TD></TD>\\n";
echo "<TD style=\\"PADDING-LEFT: 0px\\">\\n";
echo "<IMG src=\\"images/comment.gif\\" border=0> 推荐人数:($countpeople[$a]) |\\n";
echo "<SPAN>平均分:<STRONG></STRONG> (".$count."票) | 评论数:()</SPAN>\\n";
echo "</TD></TR></TBODY></TABLE>\\n";
}
echo "<TABLE style=\\"MARGIN-TOP: 30px\\" cellSpacing=0 cellPadding=0 width=\\"100%\\"";
echo "border=0>";
echo "<TBODY><TR><TD colSpan=3 height=20>";
echo "<DIV align=center>";
echo "<P align=left><FONT color=red>第".$page."页/总".$pages."页 | 总".$numrows."条</FONT> | ";
if ($page>1) echo "<a onclick=\\"viewpage(".$first.")\\" href='#'>首页</a> | ";
if ($page>1) echo "<a onclick=\\"viewpage(".$prev.")\\" href='#'>上页</a> | ";
if ($page<$pages) echo "<a onclick=\\"viewpage(".$next.")\\" href='#'>下页</a> | ";
if ($page<$pages) echo "<a onclick=\\"viewpage(".$last.")\\" href='#'>尾页</a>";
echo "转到第 <INPUT maxLength=3 size=3 value=1 name=goto_page> 页 <INPUT hideFocus onclick=\\"viewpage(document.all.goto_page.value)\\" type=button value=Go name=cmd_goto>";
echo "</P></DIV></TD></TR></TBODY></TABLE>";
文章来源:https://blog.csdn.net/qq_32450471/article/details/134954210
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!