ajax分页代码 php,PHP+Mysql+Ajax实现分页之后端代码

DB.php代码<?php

/**

* Created by PhpStorm.

* User: Administrator

* Date: 2020/1/1

* Time: 11:43

*/

class DB

{

/**dsn mysql连接

* @var mixed

*/

private $dsn;

/**mysql 数据库用户名

* @var mixed

*/

private $user;

/**mysql数据库密码

* @var mixed

*/

private $password;

/**mysql数据库字符集

* @var mixed

*/

private $charset;

/**pdo对象

* @var PDO

*/

private $pdoInstance;

/**sql 对象

* @var PDOStatement

*/

private $pdoStmt;

/**

* DB constructor.

* @param array $config

*/

public function __construct($config = [])

{

$this->dsn=$config['dsn'];

$this->user=$config['user'];

$this->password=$config['password'];

$this->charset=$config['charset'];

$this->connect();

}

/**

* 链接数据库

*/

private function connect(){

if(!$this->pdoInstance){

$options=[

PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES'.$this->charset

];

//获取pdo对象

$this->pdoInstance = new PDO($this->dsn, $this->user, $this->password);

//设置pdo对象错误处理方式

$this->pdoInstance->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

}

}

/**通过sql query 数据

* @param $sql

* @param array $parameters

* @return array

* @throws MySQLException

*/

public function query($sql,$parameters=[]){

if(!is_array($parameters)){

$parameters=[$parameters];

}

// var_dump($parameters);exit();

$this->pdoStmt=$this->pdoInstance->prepare($sql);

$index=1;

foreach ($parameters as $parameter){

$this->pdoStmt->bindValue($index++,$parameter,PDO::PARAM_INT);

}

$execRe=$this->pdoStmt->execute();

if(!$execRe){

throw new MySQLException($this->pdoStmt->errorInfo()[2],$this->pdoStmt->errorCode());

}

$data=$this->pdoStmt->fetchAll(PDO::FETCH_ASSOC);

return $data;

}

}

class MySQLException extends Exception{

}

index.php代码<?php

/**

* 操作mysql数据库

* 1.建立链接

* 2.写sql

* 3.执行

* 4.处理结果

* 5.关闭

*/

require_once './DB.php';

class App{

private $db;

public function __construct()

{

$this->db=new DB([

'dsn'=>'mysql:dbname=bick;host=localhost;port:3306;',

'user'=>'root',

'password'=>'root',

'charset'=>'utf8',

]);

}

/**

* 入口方法

*/

public function run(){

try{

$pageSize=$_GET['page_size'] ?? 10;

$pageIndex=$_GET['page_index'];

$data=$this->pagination(intval($pageSize),intval($pageIndex));

$count=$this->getCount();

$totalPage=ceil($count/$pageSize);

$info=[

'count'=>$count,

'total_page'=>$totalPage,

'data'=>$data,

];

return $this->returnSuccessData($info);

}catch (Exception $e){

return $this->returnData($e->getCode(),$e->getMessage());

}

}

/**

* 分页查询

* @param $pageSize

* @param $pageIndex

* @return array

* @throws MySQLException

*/

public function pagination($pageSize,$pageIndex){

$sql='select id,cateid from bk_article limit ? offset ?';

$limit=$pageSize;

$offset=$pageSize*($pageIndex-1);

$data=$this->db->query($sql,[$limit,$offset]);

return $data;

}

/**

* 一共多少页

* @return mixed

* @throws MySQLException

*/

public function getCount(){

$sql='select count(id) as count from bk_article';

$data=$this->db->query($sql);

return $data[0]['count'];

}

/**

* 返回正常数据

* @param $data

* @return string

*/

public function returnSuccessData($data){

$content=[

'code'=>0,

'message'=>'Success',

'info'=>$data,

];

return json_encode($content);

}

/**

* 返回数据

* @param $code

* @param $message

* @param array $data

* @return string

*/

public function returnData($code,$message,$data=[]){

$content=[

'code'=>0,

'message'=>$message,

'info'=>$data,

];

return json_encode($content);

}

}

$app=new App();

$re=$app->run();

echo $re;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值