Blogger Information
Blog 35
fans 0
comment 0
visits 27409
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
pdo预处理的分页操作
小的博客
Original
1282 people have browsed it

    以下是使用PDO预处理做的数据表的分页查询:

     需要注意的是

    LIMIT 参数的作用:

    第一个参数显示起始位置也就是偏移量

       第二个参数是显示记录数量

  bindParam();第一个参数必须是命名占位符,第二个参数必须是变量:QQ截图20180106144001.png


<?php
//分页查询的原理:
  require 'header.php';//导入头部
  /*分析分页的原理
  *1,LIMIT参数的作用:偏移量与显示数量
  *2,如何控制每页显示的数量: 
  *3,接受get参数;用户P表示当前页数;每页显示3条 
  *4,需要的参数:  
     *1.totalPage:总页数;  
     *2.totalNumber:总共有多少条数据:   
     *3.pageSize:每页显示多少天数据:   
     *4.currentPage:当前是第几页:  
  *5,rangeStart:起始页;   
  *6,rangeEnd:末页*5偏移量的计算公式offset=(page-1)*num;   
 */
 //生成pdo对象连接数据库
    require 'pdo_connect.php';echo '<div class="container">';
    echo '<div class="row">';
    $page=isset($_GET['p'])?$_GET['p']:1;
    $page=($page==0)?1:$page;
    $num=3;
    $offset=($page-1)*$num;
    try{
      $pdoStmt=$pdo->prepare("SELECT * FROM user1 LIMIT :offset,:num");//生成pdo预处理对象        $pdoStmt->bindParam('offset',$offset,PDO::PARAM_INT);//参数绑定
      $pdoStmt->bindParam('num',$num,PDO::PARAM_INT);
       $res=$pdoStmt->execute();//执行成功返回true 失败返回false  
     if(true==$res){  
         echo '<h4 align="center" style="line-height:70px;">用户信息分页列表</h4>';  
         echo '<table border="1" cellpadding="0" cellspacing="0" style="text-align:center;margin:0 auto;width:800px;">';   
         echo '<tr bgcolor="skyblue" style="line-height:45px;">         
                 <td>ID</td>         
                 <td>Name</td>        
                 <td>passWord</td>         
                 <td>Email</td>         
                 <td>操作</td>    
               </tr>'; 
              foreach($pdoStmt as $rows){  
             echo '<tr>'; 
              echo '<td>'.$rows['id'].'</td>';  
              echo '<td>'.$rows['name'].'</td>';  
              echo '<td>'.$rows['password'].'</td>';  
              echo '<td>'.$rows['email'].'</td>';  
              echo '<td>           
              <a class="btn btn-primary">修改</a>           
              <a class="btn btn-danger">删除</a>        
              </td>';  
              echo '</tr>'; 
           } 
        echo '</table>'; 
      }else{ 
        echo '<h2 style="color:red">查询失败'.$pdo->errorInfo().'</h2>';
       } 
   }catch(PDOException $e){
     $e->getMessage();
    }
  echo '</div>';  
  echo '</div>';
  echo '<div class="row text-center">';//下面我们来做分页,引用的是bootstrap 中的分页模板
  //生成新的pdo对象查询数据表总共有多少条数据;
  $pdoStmt2=$pdo->prepare("SELECT * FROM user1");
  $pdoStmt2->execute();
  $totalNum=$pdoStmt2->rowCount();
  $totalPage=ceil($totalNum/$num);
  $page = ($page==$totalPage)?($totalPage-1):$page;
echo '<nav aria-label="Page navigation">';
 echo ' <ul class="pagination ">';
  echo  '<li>'; 
  echo  '<a href="pdo_page.php?p='.((($page-1)==0)? 1:($page-1)).' " aria-label="Previous">';  
  echo '<span aria-hidden="true">&laquo;</span>'; 
  echo'</a>'; 
  echo'</li>'; 
  echo'<li><a href="pdo_page.php?p=1">首页</a></li>';    
  for($i=1;$i<=$totalPage;$i++){  
    echo '<li><a href="pdo_page.php?p='.$i.'">'.$i.'</a></li>'; 
  } 
  echo'<li><a href="pdo_page.php?p='.$totalPage.'">尾页</a></li>'; 
  echo'<li>
        <a href="pdo_page.php?p='.($page+1).'" aria-label="Next">
            <span aria-hidden="true">&raquo;</span>
        </a>    
       </li>';
 echo ' </ul>';echo '</nav>';
echo '<div>';
echo '</div>';
?>

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post