gpt4 book ai didi

php中分页及SqlHelper类用法实例

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php中分页及SqlHelper类用法实例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

文档目录结构如下:

php中分页及SqlHelper类用法实例

sqlhelper.php代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?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代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?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;
   }
}

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
  * 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代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!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();
//参数说明
/*
  * $table 分页时对那个表的数据分页
  * $id 辅助查询当前分页的数据表的总记录数
  * $pagesize 每页显示多少条信息记录数
  * $pagingsize 分页栏每次循环显示出来的个数
  * $nowpage 当前是第几页,默认第一页
  * $href 分页栏的超链接将要往哪里连接,当前页链接地址
  */
//控制起始页为
$nowpage =1;
if (isset( $_get [ "nowpage" ])){
   $nowpage = $_get [ "nowpage" ];
}
//定义分页所需参数
$meiyexiansi =10;
$meiyelianjieshu =10;
$receivearr = array ();
$receivearr = $paging ->paging_prev_next( "city" , "id" , $meiyexiansi , $meiyelianjieshu , $nowpage , "usepaging.php" );
//容错判断
if (! $receivearr ){
   return ;
}
//查询每页需要显示的数据,大小限制存在 $receivearr 数组中
$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>

所使用的数据库为 mysql5.6 所自带的 world 数据库 。

下面是运行的效果截图:

不过代码还有个 bug 。就是翻页到最后的时候会出现显示不了,原因在于 paging.php 文件的 41~43  行左右判断有问题.

错误代码如下:

?
1
2
3
if ( $nowpage > $this ->pagecount || $nowpage <=0){
   return false;
}

php中分页及SqlHelper类用法实例

php中分页及SqlHelper类用法实例

php中分页及SqlHelper类用法实例

希望本文所述对大家php程序设计有所帮助.

最后此篇关于php中分页及SqlHelper类用法实例的文章就讲到这里了,如果你想了解更多关于php中分页及SqlHelper类用法实例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com