亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

thinkPHP怎么實現分頁功能

發布時間:2021-07-10 09:42:02 來源:億速云 閱讀:148 作者:小新 欄目:開發技術

小編給大家分享一下thinkPHP怎么實現分頁功能,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

具體如下:

interface ServiceInterFace:

<?php
/**
 * InterFaceService
 * @author yhd
 */
namespace Red;
interface ServiceInterFace {
  /**
   * 實例化當前類
   */
  public static function getInstance();
}

StaticService 靜態服務類:

<?php
/**
 * 靜態服務類
 * StaticService
 * @author yhd
 */
namespace Red;
class StaticService{
  protected static $data;
  /**
   * 設置靜態數據
   * @param string $key key
   * @param mixed $data data
   * @return mixed
   */
  public static function setData($key,$data){
    self::$data[$key] = $data;
    return self::$data[$key];
  }
  /**
   * 通過引用使用靜態數據
   * @param string $key key
   * @return mixed
   */
  public static function & getData($key){
    if(!isset(self::$data[$key])){
      self::$data[$key] = null;
    }
    return self::$data[$key];
  }
  /**
   * 緩存實例化過的對象
   * @param string $name 類名
   * @return 對象
   */
  public static function getInstance($name){
    $key = 'service_@_'.$name;
    $model = &self::getData($key);
    if($model === null){
      $model = new $name();
    }
    return $model;
  }
  /**
   * html轉義過濾
   * @param mixed $input 輸入
   * @return mixed
   */
  public static function htmlFilter($input){
    if(is_array($input)) {
      foreach($input as & $row) {
        $row = self::htmlFilter($row);
      }
    } else {
      if(!get_magic_quotes_gpc()) {
        $input = addslashes($input);
      }
      $input = htmlspecialchars($input);
    }
    return $input;
  }
}

abstract AbProduct  抽象商品管理類:

<?php
/**
* 抽象商品管理類
* AbProduct.class.php
* @lastmodify 2015-8-17
* @author yhd
*/
namespace Red\Product;
abstract class AbProduct{
  public $errorNum;
  /*
  *返回錯誤信息
  *@param $errorNum 錯誤代碼
  */
  public function GetStatus(){
    $errorNum = $this->errorNum;
    switch($errorNum){
        case 0:
            $data['status'] = 0;
            $data['message'] = '收藏成功';
            break;
        case 1:
            $data['status'] = 1;
            $data['message'] = '收藏失敗';
            break;
        case 2:
            $data['status'] = 2;
            $data['message'] = '已收藏';
            break;
        case 3:
            $data['status'] = 3;
            $data['message'] = '未登陸';
            break;
        case 4:
            $data['status'] = 4;
            $data['message'] = '缺少參數';
            break;
        default:
            $data['status'] = 200;
            $data['message'] = '未知錯誤';
    }
    return $data;
  }

MemberModel 會員模型:

<?php
/**
* 會員模型
* MemberModel.class.php
* @copyright (C) 2014-2015 red
* @license http://www.red.com/
* @lastmodify 2015-8-17
* @author yhd
*/
namespace Red\Passport\Models;
use Think\Model;
use Red\ServiceInterFace;
use Red\StaticService;
class MemberModel extends Model implements ServiceInterFace{
  protected $userId;
  protected $error;
  protected function _initialize(){
    $this->userId = getUserInfo(0);
  }
   /**
   * 實例化本類
   * @return MemberModel
   */
  public static function getInstance() {
    return StaticService::getInstance(__CLASS__);
  }
   /**
   *  獲取登錄用戶信息
   * @param string  $data 查詢條件
   * @return array
   */
  public function getUser($data = '') {
    if(empty($data)){
      return $this->where("id=".$this->userId)->find();
    }else{
      return $this->field($data)->where("id=".$this->userId)->find();
    }
  }
  /**
   * 修改用戶信息
   * @param array $data
   * @param array $where 查詢條件
   */
  public function editUserInfo($data, $where = '') {
    if( $this->_before_check($data) === false ){
      return $this->error['msg'];
    }
    if(!empty($where) && is_array($where)){
      $condition[ $where[0] ] = array('eq', $where[1]);
      return $this->where($condition)->save($data);
    }
    return $this->where("id=".$this->userId)->save($data);
  }
  /**
   * 獲取用戶信息
   * @param string $data 用戶名
   * return array()
   */
  public function checkUserInfo($str, $field = ''){
    //注冊類型
    $info = CheckType($str);
    $condition[$info] = array('eq',$str);
    if(!empty($field)){
      return $this->field($field)->where($condition)->find();
    }
    return $this->where($condition)->find();
  }
  /**
   * 獲取用戶信息
   * @param array $data 用戶名
   * return array()
   */
  public function getAccount($data){
    //注冊類型
    $info = CheckType($data);
    $condition['id'] = array('eq',$this->userId);
    $condition[$info] = array('eq',$data);
    return $this->where($condition)->find();
  }
  /**
   * 修改用戶密碼
   * @param array $data['id']用戶ID
   * @param $data['passWord']用戶密碼
   * return true or false
   */
  public function upUserPassById($data){
    $condition['id'] = array('eq',$data['id']);
    $status = $this->where($condition)->save(array("password"=>md5($data['password'])));
    if($status){
        return TRUE;
    }else {
        return FALSE;
    }
  }
  /**
   * 校驗用戶的賬號或者密碼是否正確
   * @param $data['username'] 用戶名
   * @param $data['password'] 密碼
   * return true or false
   */
  public function checkUserPasswd($data= array()){
      $type = CheckType($data['username']);
      $condition[$type] = array('eq',$data['username']);
      $condition['password'] = array('eq',md5($data['password']));
       return $this->where($condition)->find();
  }
  /**
   * 網頁登錄校驗token
   * @param token string
   * return bool
   */
  public function checkToken($token){
      return $this->autoCheckToken($token);
  }
  /**
   * 后臺封號/解封
   * param int $user_id
   */
  public function changeStatus($data){
    if($this->save($data)){
      return true;
    }else{
      return false;
    }
  }
  protected function _before_check(&$data){
    if(isset($data['username']) && empty($data['username'])){
      $this->error['msg'] = '請輸入用戶名';
      return false;
    }
    if(isset($data['nickname']) && empty($data['nickname'])){
      $this->error['msg'] = '請輸入昵稱';
      return false;
    }
    if(isset($data['realname']) && empty($data['realname'])){
      $this->error['msg'] = '請輸入真名';
      return false;
    }
    if(isset($data['email']) && empty($data['email'])){
      $this->error['msg'] = '請輸入郵箱';
      return false;
    }
    if(isset($data['mobile']) && empty($data['mobile'])){
      $this->error['msg'] = '請輸入手機號碼';
      return false;
    }
    if(isset($data['password']) && empty($data['password'])){
      $this->error['msg'] = '請輸入密碼';
      return false;
    }
    if(isset($data['headimg']) && empty($data['headimg'])){
      $this->error['msg'] = '請上傳頭像';
      return false;
    }
    return true;
  }
}

ProductModel 商品模型:

<?php
/**
* 商品模型
* ProductModel.class.php
* @lastmodify 2015-8-17
* @author yhd
*/
namespace Red\Product\Models;
use Think\Model;
use Red\ServiceInterFace;
use Red\StaticService;
class ProductModel extends Model implements ServiceInterFace{
  /**
   * 實例化本類
   * @return ProductModel
   */
  public static function getInstance() {
    return StaticService::getInstance(__CLASS__);
  }
  /**
   * 單個商品
   * @param string $id
   * @param integer $status 狀態 1:有效 2:無效
   * @param integer $onsale 是否上架 1:是 2:否
   * @return array 一維數組
   */
  public function getProOne($id, $status = 1 , $onsale = 1){
    $condition['onsale'] = array('eq', $onsale); //是否上架
    $condition['status'] = array('eq', $status); //狀態
    $condition['id'] = array('eq',$id);
    return $this->where($condition)->find();
  }
  /**
   * 商品列表
   * @param string $limit 查詢條數
   * @param array $data 查詢條件
   * @return array 二維數組
   */
  public function getProList($data = ''){
    $condition['onsale'] = array('eq', $data['onsale']); //是否上架
    $condition['status'] = array('eq', $data['status']); //狀態
    $condition['type'] = array('eq', $data['type']);  //分類
    if(isset($data['limit']) && isset($data['order']) ){
      $return =$this->where($condition)->limit($data['limit'])->order($data['order'])->select();
    }else{
      $return =$this->where($condition)->select();
    }
    return $return;
  }
  /**
   * 添加商品
   * @param array $data
   * @return int
   */
  public function addProduct($data){
    return $this->add($data);
  }
  /**
   * 刪除商品
   *
   */
  public function delProduct($id){
    $condition['id'] = array('eq', $id);
    return $this->where($condition)->delete();
  }
  /**
   * 修改商品
   * @param string|int $id
   * @param array $data
   * @return
   */
  public function editProdcut($id, $data){
    $condition['id'] = array('eq', $id);
    return $this->where($condition)->save($data);
  }
  public function getProductInfo($product){
    if(empty($product) || !isset($product['product_id'])){
      return array();
    }
    $info = $this->getProOne($product['product_id']);
    $product['name'] = $info['name'];
    $product['store_id'] = $info['store_id'];
    $product['price'] = $info['price'];
    $product['m_price'] = $info['m_price'];
    return $product;
  }
}

ProductManage 商品管理類:

<?php
  namespace User\Controller;
  use Red\Product\ProductManage;
  class FavoriteController extends AuthController {
  public function index($page=1){
    $limit=1;
    $list = ProductManage::getInstance()->getCollectList($page,$limit);
    $showpage = create_pager_html($list['total'],$page,$limit);
    $this->assign(get_defined_vars());
    $this->display();
  }
  public function cancelCollect(){
    $ids = field('ids');
    $return = ProductManage::getInstance()->cancelProductCollect($ids);
    exit(json_encode($return));
  }
}

functions.php 分頁函數:

<?php
/**
 * 分頁
 * @param $total 總條數
 * @param $page 第幾頁
 * @param $perpage 每頁條數
 * @param $url 鏈接地址
 * @param $maxpage 最大頁碼
 * @return string 最多頁數
*/
function create_pager_html($total, $page = 1, $perpage = 20, $url = '', $maxpage = null) {
  $totalcount = $total;
  if (empty($url) || !is_string($url)) {
    $url = array();
    foreach ($_GET as $k => $v) {
      if ($k != 'page') {
        $url[] = urlencode($k) . '=' . urlencode($v);
      }
    }
    $url[] = 'page={page}';
    $url = '?' . implode('&', $url);
  }
  if ($total <= $perpage)
    return '';
  $total = ceil($total / $perpage);
  $pagecount = $total;
  $total = ($maxpage && $total > $maxpage) ? $maxpage : $total;
  $page = intval($page);
  if ($page < 1 || $page > $total)
    $page = 1;
    $pages = '<div class="pages"><a href="' . str_replace('{page}', $page - 1 <= 0 ? 1 : $page - 1, $url) . '" rel="external nofollow" title="上一頁" class="page_start">上一頁</a>';
  if ($page > 4 && $page <= $total - 4) {
    $mini = $page - 3;
    $maxi = $page + 2;
  } elseif ($page <= 4) {
    $mini = 2;
    $maxi = $total - 2 < 7 ? $total - 2 : 7;
  } elseif ($page > $total - 4) {
    $mini = $total - 7 < 3 ? 2 : $total - 7;
    $maxi = $total - 2;
  }
  for ($i = 1; $i <= $total; $i++) {
    if ($i != $page) {
      $pages .= '<a class="page-num" href="' . str_replace('{page}', $i, $url) . '" rel="external nofollow" >' . $i . '</a>';
    } else {
      $pages .= '<span class="page_cur">' . $i . '</span>';
    }
    if ($maxi && $i >= $maxi) {
      $i = $total - 2;
      $maxi = 0;
    }
    if (($i == 2 or $total - 2 == $i) && $total > 10) {
      $pages .= '';
    }
    if ($mini && $i >= 2) {
      $i = $mini;
      $mini = 0;
    }
  }
  $pages .= '<a href="' . str_replace('{page}', $page + 1 >= $total ? $total : $page + 1, $url) . '" rel="external nofollow" title="下一頁" class="page_next">下一頁</a><span class="pageOp"><span class="sum">共' . $totalcount .
      '條 </span><input type="text" class="pages_inp" id="pageno" value="' . $page . '" onkeydown="if(event.keyCode==13 &amp;&amp; this.value) {window.location.href=\'' . $url . '\'.replace(/\{page\}/, this.value);return false;}"><span class="page-sum">/ ' .
      $total . '頁 </span><input type="button" class="pages_btn" value="GO" onclick="if(document.getElementById(\'pageno\').value>0)window.location.href=\'' . $url . '\'.replace(/\{page\}/, document.getElementById(\'pageno\').value);"></span></div>';
  return $pages;
}

以上是“thinkPHP怎么實現分頁功能”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平罗县| 孟州市| 宁陵县| 昭通市| 尉氏县| 和田县| 长沙县| 文成县| 赤壁市| 南郑县| 天镇县| 通江县| 石景山区| 临沂市| 和龙市| 鄂州市| 蒲城县| 衡水市| 香河县| 邵东县| 公安县| 永州市| 九寨沟县| 柳州市| 扶绥县| 开化县| 阜平县| 康定县| 洞头县| 庄浪县| 丰城市| 鹿泉市| 开封市| 三河市| 巩义市| 桃园市| 耒阳市| 汉中市| 西乌珠穆沁旗| 洞口县| 汪清县|