Maison
développement back-end
tutoriel php
Exemples d'utilisation de la pagination et de la classe SqlHelper en php



Exemples d'utilisation de la pagination et de la classe SqlHelper en php
Jan 14, 2017 pm 02:46 PMLes exemples de cet article décrivent l'utilisation de la pagination et de la classe SqlHelper en php. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants?:
La structure du répertoire du document est la suivante?:
Le code SqlHelper.php est le suivant suit?:
<?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ù) } } } }
Le code Paging.php est le suivant?:
<?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ù)據(jù)分頁 * $id 輔助查詢當(dāng)前分頁的數(shù)據(jù)表的總記錄數(shù) * $pageSize 每頁顯示多少條信息記錄數(shù) * $pagingSize 分頁欄每次循環(huán)顯示出來的個數(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'><</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; } }
le code paging-list-link.css est le suivant?:
/** * 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 Le code .php est le suivant?:
<!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ù)據(jù)分頁 * $id 輔助查詢當(dāng)前分頁的數(shù)據(jù)表的總記錄數(shù) * $pageSize 每頁顯示多少條信息記錄數(shù) * $pagingSize 分頁欄每次循環(huán)顯示出來的個數(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"); //容錯判斷 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 class="brush:php;toolbar:false">"; print_r($result); echo ""; ?>