未_眠
2015-07-21 02:35
<?php /**分页模块**/ $p=empty($_GET['p'])?1:$_GET['p'];//获取页码; $table='cms_p';//数据库表名称 /**php->mysql**/ $mysqli= new mysqli('localhost','root','5866138','php_cms'); if($mysqli->errno) { die('错误号是:'.$mysqli->errno.'错误信息:'.$mysqli->error); } $mysqli->set_charset('utf8'); $sql='select count(id) as c from cms_p;'; $res=$mysqli->query($sql); if(!$res) { die('查询失败'.$mysqli->error); } else if(is_object($res)) { if($res->num_rows>0) { $row1=$res->fetch_all(MYSQLI_ASSOC); $res->free(); }else { echo "没有结果"; $row1=1;} } /**分页设置**/ $pagesize=10;//每页的数据量; $pagecount=ceil($row1[0]['c']/$pagesize);//页面的总数量; $limit=($p-1)*10; /**数据处理模块**/ $sql="select * from cms_p limit $limit , $pagesize ;"; $res2=$mysqli->query($sql); if(!$res2) { die('查询失败'.$mysqli->error); } else if(is_object($res2)) { if($res2->num_rows>0) { $row2=$res2->fetch_all(MYSQLI_ASSOC); $res2->free(); }else { echo "没有结果";} } /**数据显示模块**/ echo '<table border="1" cellspacing="0" cellpadding="6"> <caption>CMS用户管理列表</caption> <tr> <th>编号</th> <th>实际id</th> <th>用户名</th> <th>密码</th> <th>年龄</th> <th>性别</th> <th>权限</th> <th>注册ip地址</th> <th>注册时间</th> <th>操作</th> </tr>'; if($row1==1) { echo '<tr><td colspan="10">没有结果!不能显示!</td></tr>'; }else { $i=1; foreach($row2 as $key=>$val) { echo '<tr>'; echo '<td>'.$i.'</td>'; echo '<td>'.$val['id'].'</td>'; echo '<td>'.$val['uname'].'</td>'; echo '<td>'.$val['psd'].'</td>'; echo '<td>'.$val['age'].'</td>'; echo '<td>'.$val['sex'].'</td>'; echo '<td>'.$val['po'].'</td>'; echo '<td>'.$val['rip'].'</td>'; echo '<td>'.$val['rtime'].'</td>'; echo '<td><a href="'.$val['id'].'">修改</a></td>'; echo '</tr>'; $i++; } } echo '</table>'; /**分页操作模块**/ echo '<div>'; if($p<=1){ $p=1; } if($p>=$pagecount) { $p=$pagecount; } if($p>1) { echo '<a href="?p=1"> 首页 </a>'; echo '<a href="?p='.($p-1).'"> <上一页 </a>'; } if($pagecount<=10) { for($j=1;$j<=10;$j++) { echo '<a href="?p='.$j.'"> '.$j.' </a>'; } }else { if($p>=6&&$p<=$pagecount-6) { echo '...'; for($j=$p-4;$j<=$p+5;$j++) { echo '<a href="?p='.$j.'"> '.$j.' </a>'; } echo '...'; } else if($p>$pagecount-6&&$p<=$pagecount) { echo '...'; for($j=$pagecount-7;$j<=$pagecount;$j++) { echo '<a href="?p='.$j.'"> '.$j.' </a>'; } } else { for($j=1;$j<=10;$j++) { echo '<a href="?p='.$j.'"> '.$j.' </a>'; } echo '...'; } } if($p<$pagecount) { echo '<a href="?p='.($p+1).'"> 下一页> </a>'; echo '<a href="?p='.$pagecount.'"> 尾页 </a>'; } echo ' 共'.$pagecount.'页'.'当前第 '.$p.' 页'; echo '到第<form action="page.php?p='.$p.'" ><input type="number" name="p" size=2 /> <input type="submit" value="跳转" /></form>'; echo "</div>"; ?>
比如我的页数只有20页,然后我输入100,跳转的时候会出错,写的过滤越界代码没有生效,求解为什么?
我没有细看这样行不行
$p = min($p, $pagecount);
我试了
if($p<=1){ $p=1; } if($p>=$pagecount) { $p=min($p,$pagecount); }
这样还是不行啊.不知道为什么不走这段代码....我也没有分析工具............
PHP+MySQL分页原理实现
41180 学习 · 175 问题
相似问题
回答 2
回答 3
回答 1
回答 1
回答 1