首页 > 开发 > PHP > 正文

php中分页及SqlHelper类用法实例

2024-05-04 22:49:50
字体:
来源:转载
供稿:网友

本文实例讲述了php中分页及SqlHelper类用法。分享给大家供大家参考,具体如下:

文档目录结构如下:

SqlHelper.php代码如下:

<?php/** * Created by JetBrains PhpStorm. * User: lee * Date: 13-7-26 * Time: 下午8:30 * To change this template use File | Settings | File Templates. */class SqlHelper{  private $mysqli;  private static $host="localhost";  private static $user="root";  private static $pwd="";  private static $db="world";  private $sql=false;  private $result=false;  function __construct(){    $this->mysqli=new MySQLi(self::$host,self::$user,self::$pwd,self::$db);    if($this->mysqli->connect_error){      die("连接数据库失败! ".$this->mysql->connect_error);    }    $this->mysqli->query("set names utf8");  }  function execute_dql_all($sql){    //执行查询语句    $arr=array();    $this->result=$this->mysqli->query($sql) or die ($this->mysql->connect_error);    //将数据转存到$arr数组中    while($row=mysqli_fetch_array($this->result,MYSQL_BOTH)){      $arr[]=$row;    }    $this->result->free();    return $arr;  }  function execute_dql_num($sql){    //执行查询语句    $arr=array();    $this->result=$this->mysqli->query($sql) or die ($this->mysql->connect_error);    //将数据转存到$arr数组中    while($row=mysqli_fetch_array($this->result,MYSQLI_NUM)){      $arr[]=$row;    }    $this->result->free();    return $arr;  }  function execute_dql_assoc($sql){    //执行查询语句    $arr=array();    $this->result=$this->mysqli->query($sql) or die ($this->mysql->connect_error);    //将数据转存到$arr数组中    while($row=mysqli_fetch_array($this->result,MYSQLI_ASSOC)){      $arr[]=$row;    }    $this->result->free();    return $arr;  }  //查询某表中的记录数  function execute_dql_counts($table,$id="*"){    $this->sql="select count($id) from $table";    $this->result=$this->mysqli->query($this->sql);    $row=mysqli_fetch_all($this->result);    $this->result->free();    return $row[0][0];  }  function execute_dml($sql){    //执行正删改    $this->result=$this->mysqli->query($sql);    if(!$this->result){      return -1;//执行正删改失败    }else{      if($this->mysqli->affected_rows>0){        return 1;//执行正删改成功,影响行数      }else{        return 0;//执行正删改成功,但没有影响行数      }    }  }}

Paging.php代码如下:

<?php/** * Created by JetBrains PhpStorm. * User: lee * Date: 13-7-27 * Time: 下午2:48 * To change this template use File | Settings | File Templates. */header("Content-type:text/html;charset=utf-8;");require_once("SqlHelper.php");class Paging {  private $sqlHelper=false;  private $pageCount=false;//页数  private $counts=false;//总记录数  private $returnArr=false;//分页超链接的分页  function __construct(){    $this->sqlHelper=new SqlHelper();    $this->returnArr=array();  }  /*   * 参数说明   *   * $table 分页时对那个表的数据分页   * $id 辅助查询当前分页的数据表的总记录数   * $pageSize 每页显示多少条信息记录数   * $pagingSize 分页栏每次循环显示出来的个数   * $nowPage 当前是第几页,默认第一页   * $href 分页栏的超链接将要往哪里连接   */  function paging_prev_next($table,$id="*",$pageSize,$pagingSize,$nowPage=1,$href){    $this->counts=$this->sqlHelper->execute_dql_counts($table,$id);    $this->pageCount=ceil($this->counts/$pageSize);    $this->returnArr["count"]=$this->counts;    $this->returnArr["start"]=($nowPage-1)*$pageSize;    $this->returnArr["limit"]=$pageSize;    if($nowPage>$this->pageCount || $nowPage<=0){      return false;    }    $t=(ceil($nowPage/$pagingSize)-1)*$pagingSize+1;    $pre=$nowPage-$pagingSize;    $nex=$nowPage+$pagingSize;    echo "      <span class='paging-list-a paging-list-a-withBg'>{$nowPage}/{$this->pageCount}</span>      <a href='{$href}?nowPage={$pre}' class='paging-list-a'><</a>";    for($i=$t;$i<$t+$pagingSize;$i++){      if($i*$pageSize>$this->pageCount*$pageSize){        break;      }else{        if($nowPage==$i){          echo "          <a href='{$href}?nowPage={$i}' class='paging-list-a paging-list-a-withBg'>{$i}</a>";        }else{          echo "          <a href='{$href}?nowPage={$i}' class='paging-list-a'>{$i}</a>";        }      }    }    echo "      <a href='{$href}?nowPage={$nex}' class='paging-list-a'>></a>";    return $this->returnArr;  }}            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表