PHP实现分页

来源:互联网 发布:php v phpinfo 编辑:程序博客网 时间:2024/06/11 19:51
分页思路:$pageNow显示第几页,由用户输入          $rowCount总记录数,从数据库获取          $pageSize每页显示记录数,由程序员定义  $pageCount总页数,用算法实现      例如:$pageNow=1;  $rowCount=7;          $pageSize=3;          $pageCount=ceil($rowCount/$pageSize);   ceil函数进行向上取整;floor函数向下取整  mysql:select * from 表名 where 条件limit 从第几条取(编号起始值为0),取出几条记录;实例://用户需要查看的页数,即查看第几页,初始时使用默认值1$pageNow= (isset($_GET['pageNow'])) ? $_GET['pageNow'] : 1;//从数据库获取总记录数$sql="select count(product_id) from products where cat_id = $cat_id";$result1=mysql_query($sql,$dbconn);if($row=mysql_fetch_row($result1)){$rowCount=$row[0];}//每页显示记录数$pageSize=10;//总页数$pageCount=ceil($rowCount/$pageSize); //执行分页查询/*第几页 数据库记录起始编号1     0*pagesize2     1*pagesize3     2*pagesize*/$startNum=($pageNow-1)*$pageSize; //在数据库内部给记录编的号$products_sql="select *    from products    where cat_id = '$cat_id'    limit $startNum,$pageSize";$result=mysql_query($products_sql,$dbconn);$num_rows=mysql_num_rows($result);if($num_rows==0){echo '抱歉,暂无此类商品';}else{//如果有此类商品就显示该类所有商品echo '<table>';while($row=mysql_fetch_assoc($result)){echo '</tr>';echo '<tr>';echo '<td>';if(empty($row['image'])){echo '<image src="images/moren.jpg" alt=""/>';}else{echo '<image src="images/"'.$row['image'].' />';}echo '</td>';echo '<td>';echo $row['product_id'];echo '</td>';echo '<td>';echo $row['name'];echo '</td>';echo '<td>';echo $row['description'];echo '</td>';echo '<td>';echo $row['price'];echo '</td>';echo '<td>';//echo '<a href="add_to_cart.php?product_id='.$row['product_id'].'&cat_id='.$cat_id.'">[我要购买]</a>';echo '<a href="add_to_cart.php?product_id='.$row['product_id'].'">[我要购买]</a>';echo '</td>';echo '</tr>';}echo '</table>';//打印页码超链接/*for($i=1;$i<=$pageCount;$i++){echo '<a href="products.php?pageNow='.$i.'&cat_id='.$cat_id.'">['.$i.']</a> ';}*///打印上下页if($pageNow>1){$prePage=$pageNow-1;echo '<a href="products.php?pageNow='.$prePage.'&cat_id='.$cat_id.'">[上一页]</a> ';}if($pageNow<$pageCount){$nextPage=$pageNow+1;echo '<a href="products.php?pageNow='.$nextPage.'&cat_id='.$cat_id.'">[下一页]</a> ';}//实现整体翻页$pageHole = 10; //整体翻页量$start = floor(($pageNow - 1)/$pageHole)*$pageHole+1;$index = $start;//整体向前翻页,如果pageNow在1到pageHole之间就没有必要翻页if($pageNow > $pageHole){echo '<a href="products.php?pageNow='.($start-1).'&cat_id='.$cat_id.'">[<<]</a> ';}for(;$start < $index+$pageHole;$start++){echo '<a href="products.php?pageNow='.$start.'&cat_id='.$cat_id.'">['.$start.']</a>';}//整体向后翻页echo '<a href="products.php?pageNow='.$start.'&cat_id='.$cat_id.'">[>>]</a> ';echo "当前是第{$pageNow}页|总共有{$pageCount}页"; //变量用{}括起来好一点,起到间隔作用//<!--跳转到指定页-->echo '<form action="products.php" method="get">';echo '<input type="hidden" name="cat_id" value="'.$cat_id.'" />';echo '跳转到第<input type="text" name="pageNow" />页';echo '<input type="submit" name="submit" value="开始" />';echo '</form>'; 

原创粉丝点击