欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php中分頁及SqlHelper類用法實(shí)例

 更新時(shí)間:2017年01月12日 11:42:02   作者:lx_3278@126  
這篇文章主要介紹了php中分頁及SqlHelper類用法,結(jié)合實(shí)例形式分析了php數(shù)據(jù)庫查詢類與分頁類的定義與具體使用技巧,需要的朋友可以參考下

本文實(shí)例講述了php中分頁及SqlHelper類用法。分享給大家供大家參考,具體如下:

文檔目錄結(jié)構(gòu)如下:

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("連接數(shù)據(jù)庫失?。?".$this->mysql->connect_error);
    }
    $this->mysqli->query("set names utf8");
  }
  function execute_dql_all($sql){
    //執(zhí)行查詢語句
    $arr=array();
    $this->result=$this->mysqli->query($sql) or die ($this->mysql->connect_error);
    //將數(shù)據(jù)轉(zhuǎn)存到$arr數(shù)組中
    while($row=mysqli_fetch_array($this->result,MYSQL_BOTH)){
      $arr[]=$row;
    }
    $this->result->free();
    return $arr;
  }
  function execute_dql_num($sql){
    //執(zhí)行查詢語句
    $arr=array();
    $this->result=$this->mysqli->query($sql) or die ($this->mysql->connect_error);
    //將數(shù)據(jù)轉(zhuǎn)存到$arr數(shù)組中
    while($row=mysqli_fetch_array($this->result,MYSQLI_NUM)){
      $arr[]=$row;
    }
    $this->result->free();
    return $arr;
  }
  function execute_dql_assoc($sql){
    //執(zhí)行查詢語句
    $arr=array();
    $this->result=$this->mysqli->query($sql) or die ($this->mysql->connect_error);
    //將數(shù)據(jù)轉(zhuǎn)存到$arr數(shù)組中
    while($row=mysqli_fetch_array($this->result,MYSQLI_ASSOC)){
      $arr[]=$row;
    }
    $this->result->free();
    return $arr;
  }
  //查詢某表中的記錄數(shù)
  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){
    //執(zhí)行正刪改
    $this->result=$this->mysqli->query($sql);
    if(!$this->result){
      return -1;//執(zhí)行正刪改失敗
    }else{
      if($this->mysqli->affected_rows>0){
        return 1;//執(zhí)行正刪改成功,影響行數(shù)
      }else{
        return 0;//執(zhí)行正刪改成功,但沒有影響行數(shù)
      }
    }
  }
}

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;//頁數(shù)
  private $counts=false;//總記錄數(shù)
  private $returnArr=false;//分頁超鏈接的分頁
  function __construct(){
    $this->sqlHelper=new SqlHelper();
    $this->returnArr=array();
  }
  /*
   * 參數(shù)說明
   *
   * $table 分頁時(shí)對(duì)那個(gè)表的數(shù)據(jù)分頁
   * $id 輔助查詢當(dāng)前分頁的數(shù)據(jù)表的總記錄數(shù)
   * $pageSize 每頁顯示多少條信息記錄數(shù)
   * $pagingSize 分頁欄每次循環(huán)顯示出來的個(gè)數(shù)
   * $nowPage 當(dāng)前是第幾頁,默認(rèn)第一頁
   * $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'>&lt;</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'>&gt;</a>";
    return $this->returnArr;
  }
}

paging-list-link.css代碼如下:

/**
 * Created by JetBrains PhpStorm.
 * User: lee
 * Date: 13-7-27
 * Time: 下午5:56
 * To change this template use File | Settings | File Templates.
 */
.paging-list-a{
  border:1px solid #b5b5af;
  background-color:#efebed;
  font-family: 'Meiryo UI';
  font-size: 16px;
  font-weight: 600;
  padding: 0px 8px 0px 8px;
  /*cursor: pointer;*/
  text-decoration: none;
  color: #292927;
}
.paging-list-a-withBg{
  background-color: #1D92E2;
  color: white;
}

usePaging.php代碼如下:

<!DOCTYPE html>
<html>
<head>
  <title></title>
  <link rel="stylesheet" type="text/css" href="paging-list-link.css">
</head>
<body>
<?php
header("Content-type:text/html;charset=utf-8;");
require_once 'Paging.php';
$paging=new Paging();
//參數(shù)說明
/*
 * $table 分頁時(shí)對(duì)那個(gè)表的數(shù)據(jù)分頁
 * $id 輔助查詢當(dāng)前分頁的數(shù)據(jù)表的總記錄數(shù)
 * $pageSize 每頁顯示多少條信息記錄數(shù)
 * $pagingSize 分頁欄每次循環(huán)顯示出來的個(gè)數(shù)
 * $nowPage 當(dāng)前是第幾頁,默認(rèn)第一頁
 * $href 分頁欄的超鏈接將要往哪里連接,當(dāng)前頁鏈接地址
 */
//控制起始頁為
$nowPage=1;
if(isset($_GET["nowPage"])){
  $nowPage=$_GET["nowPage"];
}
//定義分頁所需參數(shù)
$meiyexiansi=10;
$meiyelianjieshu=10;
$receiveArr=array();
$receiveArr=$paging->paging_prev_next("city","ID",$meiyexiansi,$meiyelianjieshu,$nowPage,"usePaging.php");
//容錯(cuò)判斷
if(!$receiveArr){
  return;
}
//查詢每頁需要顯示的數(shù)據(jù),大小限制存在 $receiveArr 數(shù)組中
$sqlHelper=new SqlHelper();
$result=$sqlHelper->execute_dql_num("select * from city limit ".$receiveArr['start'].",".$receiveArr['limit']."");
echo "<pre>";
print_r($result);
echo "</pre>";
?>
</body>
</html>

所使用的數(shù)據(jù)庫為 MySQL5.6 所自帶的 world 數(shù)據(jù)庫

下面是運(yùn)行的效果截圖:

不過代碼還有個(gè) Bug 。就是翻頁到最后的時(shí)候會(huì)出現(xiàn)顯示不了,原因在于 Paging.php 文件的 41~43  行左右判斷有問題。

錯(cuò)誤代碼如下:

if($nowPage>$this->pageCount || $nowPage<=0){
  return false;
}

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+mysql數(shù)據(jù)庫操作入門教程》、《php+mysqli數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • php設(shè)計(jì)模式之單例模式實(shí)例分析

    php設(shè)計(jì)模式之單例模式實(shí)例分析

    這篇文章主要介紹了php設(shè)計(jì)模式之單例模式,實(shí)例分析了單例模式的原理與相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • PHP中使用json數(shù)據(jù)格式定義字面量對(duì)象的方法

    PHP中使用json數(shù)據(jù)格式定義字面量對(duì)象的方法

    這篇文章主要介紹了PHP中使用json數(shù)據(jù)格式定義字面量對(duì)象的方法,這是一種變通方法,使用json還可以在類中生成數(shù)組哦,需要的朋友可以參考下
    2014-08-08
  • PHP PDOStatement::setFetchMode講解

    PHP PDOStatement::setFetchMode講解

    今天小編就為大家分享一篇關(guān)于PHP PDOStatement::setFetchMode講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • smarty section簡介與用法分析

    smarty section簡介與用法分析

    section的產(chǎn)生是為解決foreach的不足的,與foreach一樣,它用于設(shè)計(jì)模板內(nèi)的循環(huán)塊,它較為復(fù)雜,可極大程序上滿足程序需要,所以在程序中我習(xí)慣使用它而不使用foreach
    2008-10-10
  • php實(shí)現(xiàn)歸并排序算法的方法詳解

    php實(shí)現(xiàn)歸并排序算法的方法詳解

    這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)歸并排序算法的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • PHP導(dǎo)入導(dǎo)出Excel代碼

    PHP導(dǎo)入導(dǎo)出Excel代碼

    本文給大家分享的是PHP將Excel導(dǎo)入數(shù)據(jù)庫以及數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出至Excel的方法和示例,有需要的小伙伴可以參考下
    2015-07-07
  • php+js實(shí)現(xiàn)百度地圖多點(diǎn)標(biāo)注的方法

    php+js實(shí)現(xiàn)百度地圖多點(diǎn)標(biāo)注的方法

    這篇文章主要介紹了php+js實(shí)現(xiàn)百度地圖多點(diǎn)標(biāo)注的方法,涉及php結(jié)合js針對(duì)百度地圖接口調(diào)用與json操作相關(guān)技巧,需要的朋友可以參考下
    2016-11-11
  • PHP下載遠(yuǎn)程文件到本地存儲(chǔ)的方法

    PHP下載遠(yuǎn)程文件到本地存儲(chǔ)的方法

    這篇文章主要介紹了PHP下載遠(yuǎn)程文件到本地存儲(chǔ)的方法,實(shí)例分析了php遠(yuǎn)程文件的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • php抽象方法和普通方法的區(qū)別點(diǎn)總結(jié)

    php抽象方法和普通方法的區(qū)別點(diǎn)總結(jié)

    在本篇文章里小編給大家分享的是關(guān)于php 抽象方法和普通方法的區(qū)別的相關(guān)文章,有需要的朋友們可以學(xué)習(xí)下。
    2019-10-10
  • php magic_quotes_gpc的一點(diǎn)認(rèn)識(shí)與分析

    php magic_quotes_gpc的一點(diǎn)認(rèn)識(shí)與分析

    最近一直在做一個(gè)文章發(fā)布系統(tǒng),做了改,改了做,一直到現(xiàn)在還沒竣工.... 為了達(dá)到更好的兼容性,其中的程序涉及到了magic_quotes_gpc,看了下手冊(cè),又找了些資料,分析了下,分享給大家。
    2008-08-08

最新評(píng)論