面向对象---封装增删改查+数据分页

<meta charset="UTF-8">
<?php
class F{
    public $locahost;
    public $name;
    public $pwd;
    public $database;

    public function __construct($locahost,$name,$pwd,$database)
    {
        $this->locahost = $locahost;
        $this->name = $name;
        $this->pwd = $pwd;
        $this->database = $database;
    }
    public function MysqliConnect(){
        $link = mysqli_connect($this->locahost,$this->name,$this->pwd,$this->database);
        mysqli_query($link,‘set names utf8‘);
        return $link;
    }
    public function Insert($data){
        foreach ($data as $k => $v)
        {
            @$value = $value."‘$v‘,";
            @$key = $key."$k,";
        }
        $lastValue = substr($value,0,-1);
        $lastKey = substr($key,0,-1);
        $link = $this->MysqliConnect();
        $sql = "insert into depart ($lastKey) VALUES ($lastValue)";
        if(mysqli_query($link,$sql)){
            $res = 1;
        }else{
            $res = 0;
        }
        return $res;
    }

    //定义一个查询的方法(id的值,id的字段名,表名)
    public function SelectData($table,$id=null,$id_name=null){
        //判断一下id有没有值
        if($id!==null){
            //查询的是单条的数据
            $link = $this->MysqliConnect();
            //拼接sql
            $sql = "SELECT * FROM $table WHERE $id_name=‘$id‘";
            //执行
            $res = mysqli_query($link,$sql);
            //生成数组
            while ($a = mysqli_fetch_assoc($res)){
                $data[] = $a;
            }
        }else{
            //查询的全部的数据
            //连接数据库,获取$link
            $link = $this->MysqliConnect();
            //拼接sql
            $sql = "SELECT * FROM $table";
            //执行
            $res = mysqli_query($link,$sql);
            //生成数组
            while ($a = mysqli_fetch_assoc($res)){
                $data[] = $a;
            }
        }

        return $data;
    }

    //封装一个删除的方法
    public function DeleteData($table,$id,$id_name){
        //链接数据库
        $link = $this->MysqliConnect();
        //拼接sql
        $sql = "delete from $table WHERE $id_name=$id";
        //执行
        if(mysqli_query($link,$sql)){
            $res = 1;
        }else{
            $res = 2;
        }

        return $res;
    }

    //封装一个修改的方法
    public function UpdateData($table_name,$data){
        //拿一下link
        $link = $this->MysqliConnect();
        //循环取出来我们想要的值然后拼接
        foreach ($data as $k=>$v){
            //$k就是所有的键(数据库里面的字段)
            // $v就是所有的值(数据库里面的字段值)
            //var_dump(strpos($k,‘id‘));
            if(strpos($k,‘id‘) !== false){
                $last_id_name = $k; //获取到了id的字段名
                $last_id_value = $v;  //获取的是id的字段值
            }else{
                //拼接
                @ $str .= "$k=‘$v‘,";
            }
        }

        //截取一下最后的拼接
        $last_str = substr($str,0,-1);

        //拼接where条件
        $where = "$last_id_name=$last_id_value";
        //拼接剩下的sql
        $sql = "update $table_name set $last_str WHERE $where";
        if(mysqli_query($link,$sql)){
            return 1;
        }else{
            return 2;
        }
    }

    //定义一个分页的方法
    public function GetPage($table,$length){
        //求出总条数
        $link = $this->MysqliConnect();
        $sql = "select * from $table";
        $res = mysqli_query($link,$sql);
        $count = mysqli_num_rows($res);
        //设置每页的条数
        //$length = 3;
        //总页数
        $last_count = ceil($count/$length);
        //接收当前页
        $current_page = empty($_GET[‘page‘])?1:$_GET[‘page‘];
        //偏移量
        $limit = ($current_page-1)*$length;
        //拼接sql
        $sql = "select * from $table limit $limit,$length";
        //执行sql
        $res1 = mysqli_query($link,$sql);
        //转化成数组
        while ($arr = mysqli_fetch_assoc($res1)){
            $data[] = $arr;
        }

        //判断首页、尾页、上一页、下一页
        $home_page = 1; //首页
        $last_page = $last_count;//尾页
        //上一页
        if($current_page<=1){
            $pre_page = 1;
        }else{
            $pre_page = $current_page-1;
        }

        //下一页
        if($current_page>=$last_count){
            $next_page = $last_count;
        }else{
            $next_page = $current_page+1;
        }

        //返回
        $data2[‘data‘] = $data;  //表单数据
        $data2[‘current_page‘] = $current_page;  //当前页
        $data2[‘home_page‘] = $home_page; //首页
        $data2[‘last_page‘] = $last_page;  //尾页
        $data2[‘pre_page‘] = $pre_page;  //上一页
        $data2[‘next_page‘] = $next_page;  //下一页

        return $data2;
    }
}
//$obj = new F(‘127.0.0.1‘,‘root‘,‘root‘,‘demo‘);
//$res = $obj->GetPage(‘book‘,3);
//print_r($res);

分页的调用:

<?php
//引入类文件
include "3.php";
//实例化
$obj = new F(‘127.0.0.1‘,‘root‘,‘root‘,‘demo‘);
$data = $obj->GetPage(‘book‘,5);
?>
<table>
    <tr>
        <th>ID</th>
        <th>名字</th>
        <th>价格</th>
        <th>作者</th>
        <th>照片</th>
    </tr>
    <?php foreach ($data[‘data‘] as $k =>$v){?>
        <tr>
            <td><?php echo $v[‘book_id‘];?></td>
            <td><?php echo $v[‘book_name‘];?></td>
            <td><?php echo $v[‘book_price‘];?></td>
            <td><?php echo $v[‘book_author‘];?></td>
            <td><img src="<?php echo $v[‘book_photo‘];?>" width="100px;" height="100px;"></td>
        </tr>
    <?php }?>

    <a href="fenye.php?page=<?php echo $data[‘home_page‘]?>">首页</a>
    <a href="fenye.php?page=<?php echo $data[‘pre_page‘]?>">上一页</a>
    <a href="fenye.php?page=<?php echo $data[‘next_page‘]?>">下一页</a>
    <a href="fenye.php?page=<?php echo $data[‘last_page‘]?>">尾页</a>
</table>

原文地址:https://www.cnblogs.com/hopelooking/p/9037873.html

时间: 2024-07-31 23:30:41

面向对象---封装增删改查+数据分页的相关文章

用SpringBoot+MySql+JPA实现对数据库的增删改查和分页

使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页      JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.  使用Springboot和jpa对数据库进行操作时,能够大大减少我们的工作量,在jpa中,已经在底层封装好了增删查的功能和sql语句,可以使我们进行快速开发 项目流程 一.新建一个项目 二.配置文件 #数据源配置 spring.dat

SpringBoot JPA实现增删改查、分页、排序、事务操作等功能

今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查.分页.排序.事务操作等功能.下面先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 SQL 中的 and 关键字,比如 findByHeightAndSex(int height,char sex): public List<User> findByHeightAndSex(int height,char sex); // Or --- 等价于 SQL 中的 or 关键字,比如 findByHeig

SpringBoot-Vue实现增删改查及分页小DEMO

前言 主要通过后端 Spring Boot 技术和前端 Vue 技术来简单开发一个demo,实现增删改查.分页功能以及了解Springboot搭配vue完成前后端分离项目的开发流程. 开发栈 前端 开发工具:WebStorm 开发框架:vue + axios 包管理工具: npm 打包工具:webpack 后端 开发工具:IDEA 开发框架:Springboot + mybatis 打包工具:maven 数据库: MySQL PS:假设以上的的工具你都安装好啦,写CRUD小DEMO时进坑了,这篇

类(面向对象、增删改查、继承、多态、封装、反射)

类的增删改查可以操作类里面的函数.数据属性,实例. 1.函数与类的区别 函数实现功能的模块化 类是实现功能和数据的模块化 ——init——类的构造:初始化类,实例化的时候自动执行2.类用法 4.什么是类, 类是把一类事物的相同的特征和同一动作整合到一类,类是抽象的5.什么是对象 对象就是基于类创建的一种事物,也是特征和动作整合到一起的6.面向对象 就是__init__独特构造7.类和对象的关系 对象都是类产生的.8.实例化:有类产生的过程叫实例化9.新式类类名后面括号里加object10.什么是

web day19 Service层处理事务(利用ThreadLocal),TxQueryRunner小工具,单表练习(增删改查操作),分页

Service事务 DAO中不是处理事务的地方,因为DAO中的每个方法都是对数据库的一次操作 在Service中不应该出现Connection,它应该只在DAO中出现, 因为它是JDBC的东西,JDBC的东西是用来连接数据库的 修改JdbcUtils 我们把对事务的开启和关闭放到JdbcUtils中,在Service中调用JdbcUtils的方法来完成事务的处理, 但在Service中就不会再出现Connection这一"禁忌"了. 代码 public class JdbcUtils

springDataJPQL实现增删改查及分页,原生sql查询,根据方法命名规则实现查询

一.使用方法 1.在dao中定义开一个方法,使用方法的参数设置jpql,并且使用方法的返回值接受查询结果,在方法上添加@query注解,在注解中写jpql语句进行增删改查,测试 2.使用原生的sql语句:dao中定义一个方法,在方法中添加@query注解,在注解中添加原生sql语句,并且添加一个属性:nativeQuery=true,测试 3.方法命名规则查询: 通过以肯定的规则,定义一个方法,框架本身就可以根据方法名生成一块个sql语句进行查询,规则: 1.必须以findBy开头 2.查询某个

家庭记账管理系统的增删改查,分页列表显示

上次登陆的时候也已经学习了增加的功能,这次再回忆一下 1.增 前端代码add.jsp中form表单把刷新后界面的地址与后面的action对象中结合起来,通过struts.xml配置文件进行跳转 1.1form表单 <FORM id=form1 name=form1 action="${pageContext.request.contextPath }/customer_add.action" method=post> 1.2 customerAction类中,add方法,返

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库

VS2012里面使用EF框架的增删改查和分页的方法

public class BaseRepository<T> where T : class    {        //实例化EF框架        DataModelContainer db = new DataModelContainer(); //添加        public T AddEntities(T entity)        {            db.Entry<T>(entity).State = EntityState.Added;