SqlHelper.class.php+分页类方法

  1 <?php
  2     class SqlHelper{
  3         private  $conn;
  4         private static  $host="localhost";
  5         private static  $user="root";
  6         private static  $password="";
  7         private static  $db="emp";
  8         //构造函数 完成初始化的任务
  9         public function  __construct(){
 10            $this->conn= new mysqli(self::$host,self::$user,self::$password,self::$db);
 11             if ($this->conn->connect_error){
 12                 die("连接失败".$this->conn->connect_error);
 13
 14             }
 15             $this->conn->query("set names utf8");
 16
 17         }
 18
 19
 20
 21         //执行dql查询语句
 22         public function execut_dql($sql){
 23             $res=$this->conn->query($sql) or
 24             die(‘sql语句错误‘.$this->conn->error);
 25
 26             //关闭连接
 27             $this->conn->close();
 28
 29             return $res;
 30             //释放资源
 31             $res->free();
 32
 33         }
 34         //执行dml语句
 35         public function execut_dml($sql){
 36
 37           //操作$sql
 38         $res=$this->conn->query($sql) or die("sql语句错误".$this->conn->error);
 39
 40
 41             if (!$res){
 42                 return 0; //操作失败
 43             }else{
 44                 if($this->conn->affected_rows>0){
 45                     return 1; //操作成功
 46                 }else {
 47                     return 2; //没有受影响的行数
 48                 }
 49
 50
 51
 52             }
 53             //关闭连接
 54             $this->conn->close();
 55             //释放资源
 56             $res->free();
 57
 58         }
 59         public function execut_dql2($id){
 60             $res=$this->conn->query($id) or die("sql语句错误".$this->conn->error);;
 61             //查询的结果放进数组中
 62             $emps=array();
 63
 64             while($row=$res->fetch_assoc()){
 65                 $emps[]=$row;
 66
 67             }
 68
 69             //关闭资源
 70             $res->free();
 71             //关闭连接
 72             $this->conn->close();
 73             return $emps;
 74         }
 75         //执行分页的的sql语句,并赋值给fenyepage类
 76         public  function  execut_dql_fenye($sql1,$sql2,$fenyePage){
 77             //执行要查询的语句 $res1返回一个结果集
 78             $res1=$this->conn->query($sql1) or die("sql语句错误".$this->conn->error);
 79             //用数组接收取出的值
 80             $arr= array();
 81             //取出结果集每一行,转移到数组中
 82              while ($row=$res1->fetch_assoc()){
 83                  $arr[]=$row;
 84              }
 85               //释放资源
 86               $res1->free();
 87
 88              $fenyePage->arr=$arr;
 89
 90              $res2=$this->conn->query($sql2) or die("sql语句错误".$this->conn->error);
 91
 92              $count=$res2->fetch_assoc();
 93              $rowCount=$count[‘c‘];
 94
 95              $fenyePage->rowCount=$rowCount;
 96              $fenyePage->pageCount=ceil($rowCount/$fenyePage->pageSize);
 97              //释放资源
 98              $res2->free();
 99              //关闭连接
100              $this->conn->close();
101              //如果点击当前页大于1使用当前页-1,小于使用1
102              $prev= $fenyePage->pageNow>1 ? $fenyePage->pageNow-1:1;
103              //如果点击当前页小于总页,当前页加一,否则取总页
104              $next= $fenyePage->pageNow<$fenyePage->pageCount ? $fenyePage->pageNow+1:$fenyePage->pageCount;
105
106              $pageMix=$fenyePage->pageNow-$fenyePage->pageSpa<1 ? 1:$fenyePage->pageNow-$fenyePage->pageSpa;
107              $pageMax=$fenyePage->pageNow+$fenyePage->pageSpa-1<10 ? 10:$fenyePage->pageNow+$fenyePage->pageSpa-1;
108              $pageMaxd= $pageMax>$fenyePage->pageCount?$fenyePage->pageCount:$pageMax;
109              //首页
110              $fenyePage->naviga="<a href=‘$fenyePage->url?pageNow=1‘>首页</a>&nbsp;&nbsp;";
111              //快速翻页,如果点击的页面小于10,隐藏
112              if($fenyePage->pageNow>10){
113                  $fenyePage->naviga.="<a href=‘$fenyePage->url?pageNow=".($pageMix-5)."‘><<</a>&nbsp;&nbsp;";
114              }
115              if($fenyePage->pageNow!=1){
116
117               //页面不等于1显示页面,否则不显示上一页
118
119                  $fenyePage->naviga.= "<a href=‘$fenyePage->url?pageNow=$prev‘>上一页</a>&nbsp;&nbsp;";
120              }
121
122
123              for($pageMix;$pageMix<=$pageMaxd;$pageMix++){
124
125               $fenyePage->naviga.="<a href=‘$fenyePage->url?pageNow=$pageMix‘>$pageMix</a>&nbsp;&nbsp;";
126
127              }
128              if($fenyePage->pageNow < $fenyePage->pageCount){
129              $fenyePage->naviga.="<a href=‘$fenyePage->url?pageNow=$next‘>下一页</a>&nbsp;&nbsp;";
130              }
131              if($fenyePage->pageNow+5<$fenyePage->pageCount){
132              $fenyePage->naviga.="<a href=‘$fenyePage->url?pageNow=".($pageMaxd+$fenyePage->pageSpa+1)."‘>>></a>&nbsp;&nbsp;";
133              }
134              $fenyePage->naviga.="<a href=‘$fenyePage->url?pageNow=$fenyePage->pageCount‘>末页</a>&nbsp;&nbsp;";
135              $fenyePage->naviga.="当前第{$fenyePage->pageNow}页/总共{$fenyePage->pageCount}页<br/><br/>";
136         }
137
138
139     }
140 ?>
时间: 2024-11-05 19:33:32

SqlHelper.class.php+分页类方法的相关文章

SqlHelper发布—比Pagehelper更好用的分页插件

SqlHelper发布-比PageHelper性能更高 起源 前段时间开启了一个新的项目,在选择分页插件时,发现github上很流行的一个是pagehelper,在百度上搜索了一下,使用量.由于项目紧急,所先拿来用了.但是我知道它并不适合我们.原因是它有如下几个缺点: 1) 对国产数据库支持不足 2) 扩展不方便 3) 配置复杂 4) 性能底下 (不要喷我, 因为它不是用的占位符?,发挥不了PrepareSatement的优势) 5) 只支持MyBatis 鉴于它的这些不足,我就趁闲暇时间新开发

ASP.NET之刷新分页

1,第一次全部把数据加载到内存中,然后再做分页,性能差,不推荐. 2,GridView自带分页 3,AspNetPager分页控件  这个是第三分控件需要下载,很好用 4,自己写分页 前三种就不介绍如何写了,网上很多,今天就来记录一下自己写的分页,不需要下载任何东西,全部都是代码完成. 我们的前台 <form id="form1" runat="server"> <div> //数据显示 <asp:Repeater ID="r

在DevExpress程序中使用Winform分页控件直接录入数据并保存

一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数据,这种对于字段比较少,而且内容相对比较简单的情况下,效率是比较高的一种输入方式.本篇随笔主要介绍在DevExpress程序中使用GridView直接录入数据并保存的实现,以及使用Winform分页控件来进行数据直接录入的实现操作. 1.在GridView上展示数据 在GridView上展示数据,只

Ajax+Asp.Net无刷新分页

1.新建解决方案,并建立四个项目BLL,DAL,Model,PagerTest,如图所示: 2.Model代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Model { public class Person { /// <summary> /// 编号 /// </summary> public int Id { get; set;

套用JQuery EasyUI列表显示数据、分页、查询

声明,本博客从csdn搬到cnblogs博客园了,以前的csdn不再更新,朋友们可以到这儿来找我的文章,更多的文章会发表,谢谢关注! 有时候闲的无聊,看到extjs那么肥大,真想把自己的项目改了,最近看到一款轻型的UI感觉不错,但是在网上找了好多教程,但是没有一个是完全是C#asp.net写的 无耐下,自己写了下,感觉效果不错,故拿出来和大学分享一下,希望可以抛砖引玉作用. 由于好多人都只是拷贝代码,故在此全用图片作说明. 图片效果图1 这个界面是上左右下结构 左边是一棵树 右边是一个表格 上部

牛腩新闻发布系统总结——网站发布和分页制作

牛腩新闻发布系统的视频看了将近半个月的时间,今天成功地把它发布了,哈哈.第一次看教学视频看得这么专注,都不带走思的,很不错.给小牛老师赞一个,嘿嘿! 言归正传,每学完一个阶段,最重要的就是总结,所以就允许我以倒序的形式,颗粒归仓吧! 牛腩新闻发布系统的发布 参考博文: win7下IIS的安装和配置 http://www.jb51.net/article/29787.htm VS2010网站发布详解 http://wanghaitaoboke.blog.163.com/blog/static/17

机房重构 之 SqlHelper

机房收费开始一段时间了,刚开始也是敲了一段时间,发现D层访问数据库出现了大量的重复代码,每个D层类都要 单独访问数据库.发现问题,咱们就解决问题,查阅前人的博客,发现了一个SqlHelper类,运用一下,果然好用,省 去了大量时间去写重复的代码. 小面对SQL中的一些类方法进行简单的介绍. 1.SQLHelper.ExecuteNonQuery    作用:用于执行语句 2. SQLHelper.ExecuteScalar       作用:用于获取单字段值语句 3. SQLHelper.Exe

ListView优化分页优化

缘由 我们在用ListView展现数据的时候.比如展现联系人,如果联系人太多就会出现卡的现象,比如如果有1000多条数据,从数据库里查询,然后装载到List容器这段时间是比较耗时的.虽然我们可以用asyncTask来单独开启一个子线程加载.一次查看那么多,未免有点多余.是否可以通过先装载30条数据,如果用户需要我们在继续查询并且展示后面的数据,这样一来可以提升.使用速率. 实现方法 1.数据库分页查询 首先写SqlHelper指定每次查询数据库多少数据.代码如下 /*** 分页查询黑名单* *

pdo分页

<?php            开源it /** 文件: pdo_page.class.php ** 版本: 2.0 ** 功能: 使用php数据对象(pdo)实现数据的分页显示 ** 运行环境: **                ① php版本--5.1以上(包括5.1) **                ② 打开pdo扩展(默认为关闭) **                ③ 打开与所使用db相应对应的pdo扩展(默认为关闭) ** ** DISCLAIMER: ** Distribu