phpcms v9后台多表查询分页代码

phpcms v9里面自带的listinfo分页函数蛮好用的,可惜啊。不支持多表查询并分页。

看了一下前台模板层支持get标签,支持多表查询,支持分页。刚好可以把这个功能搬到后台来使用。

我们现在对get_model.class.php进行改造使他能支持多表查询并分页。

<?php
defined(‘IN_PHPCMS‘) or exit(‘No permission resources.‘);
pc_base::load_sys_class(‘model‘, ‘‘, 0);
class get_model extends model {
    public $db_config, $db_setting;
    public function __construct($db_config = array(), $db_setting = ‘‘) {
        if (!$db_config) {
            $this->db_config = pc_base::load_config(‘database‘);
        } else {
            $this->db_config = $db_config;
        }
        if (!$db_setting) {
            $this->db_setting = ‘default‘;
        } else {
            $this->db_setting = $db_setting;
        }

        parent::__construct();
        if ($db_setting && $db_config[$db_setting][‘db_tablepre‘]) {
            $this->db_tablepre = $db_config[$db_setting][‘db_tablepre‘];
        }
    }

    public function sql_query($sql) {
        if (!empty($this->db_tablepre)) $sql = str_replace(‘phpcms_‘, $this->db_tablepre, $sql);
        return parent::query($sql);
    }

    public function fetch_next() {
        return $this->db->fetch_next();
    }
    //自定义分页查询{支持多表}
    public function mylistinfo($where = ‘‘, $page = 1, $pagesize = 20, $key=‘‘, $setpages = 10,$urlrule = ‘‘,$array = array()) {
        $sql = preg_replace(‘/select([^from].*)from/i‘, "SELECT COUNT(*) as count FROM ", $where);
        $this->sql_query($sql);
        $c = $this->fetch_next();
        $this->number = $c[‘count‘];
        $page = max(intval($page), 1);
        $offset = $pagesize*($page-1);
        $this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);

        $r = $this->sql_query($where.‘ LIMIT ‘.$offset.‘,‘.$pagesize);
        while(($s = $this->fetch_next()) != false){
            $data[] = $s;
        }
        return $data;
    }
}
?>

使用方法:

$this->get_db = pc_base::load_model(‘get_model‘);
$page = intval($_GET[‘page‘]);
$infos = $this->get_db->mylistinfo($where,$page);
$pages = $this->get_db->pages;

http://www.chanyinkeji.com/phpcms-jiaocheng/10.html

时间: 2024-10-25 05:10:30

phpcms v9后台多表查询分页代码的相关文章

phpcms 多表查询分页

phpcms 多表查询分页,今天放在这里和大家一起分享下.这个函数写在mode.class.php里面,可能不利于升级.直接看代码吧 /**根据SQL查询多表数据并分页,用于多表查询 * @param $sql * @param $order * @param $page * @param $pagesize * @return unknown_type */ final public function mutlilistinfo($sql = '', $page = 1, $pagesize

PHPCMS V9二次开发自定义分页函数的解决方案

下面为大家分享一个PHPCMS V9二次开发自定义分页函数的方法. 方法如下: 首先打开 phpcms\libs\functions\global.func.php这个文件,找到分页函数,复制一下,粘贴到默认分页函数的下面,重新命名,比如我的就命名为wz_pages,保存. 打开 phpcms/libs/classes/template_cache.class.php,找到207行的: $str .= '$pages = pages($'.$op.'_total, $page, $pagesiz

解决PhpCms V9后台无法上传图片

使用HttpClient进行网络处理的基本步骤如下: 1.通过get的方式获取到Response对象. CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet("http://www.baidu.com/"); CloseableHttpResponse response = httpClient.execute(httpGet); 2.获取Response对

phpcms v9后台登陆验证码无法显示,怎么取消验证码

phpcms v9后台登陆验证码无法显示论坛里关于这个问题貌似一直没有解决,查看源代码后发现,关键一点是获取验证码的图片与全局变量SITE_URL相关,也就是网站的目录, 所以只要修改cache/configs/system.php文件中的网站路径变量 ‘web_path’ 即可. 举例说明(本地域名http://localhost) 如果所有的文件都在根目录下(例如apache下的htdocs),此时,默认访问地址应该是http://localhost/,则‘web_path’=>'/',若网

phpcms V9 前台自定义表单中提交多图字段

phpcms V9 中的自定义字段支持图片上传和多图上传,但是上图片后 看不到的,因为TA直接输出了数组,没有编译过! 想直接在表单后台显示其上传的图片只需要修改表单的模版即可,下面是修改的文件和相关代码: 首先找到表单的页面模版,"../phpcms/modules/formguide/templates/formguide_info_view.tpl.php",打开并编辑! <?php   if(is_array($forminfos_data)){       foreac

多表查询分页[多次查询]

问题描述: 1:我们使用PageHelper插件的时候,PageHelper.startPage(pageNow,pageSize)要放在查询语句的前面 2:当startPage的后面有多次查询的话,它只对第一条查询语句有效果 3:假如要进行多次查询,然后对结果进行分页,关注点是:对最后的结果进行分页,而不是第一次查询出来的结果 最终解决办法有2种:第一种:依旧是用老套路,用原始自己写的PageUtil做[因为里面存放的数据就是List的,所以将最终查询的结果(不管你查询多少次)直接放进去即可]

多表查询分页存储过程,解决了第二页不显示的问题

SET ANSI_NULLS OFFGOSET QUOTED_IDENTIFIER OFFGO ALTER PROCEDURE [dbo].[UP_Pagination]/****************************************************************** 千万数量级分页存储过程 *****************************************************************参数说明:1.Tables :表名称,视

phpcms v9 后台添加修改页面空白页问题解决方法

phpcms v9 添加修改页面空白页的解决方法 找一个正常运行的phpcms 将caches\caches_model\caches_data 目录下的 content_form.class.php content_input.class.php content_output.class.php content_update.class.php 上传覆盖. 问题引发原因为更新缓存,缓存更新后记得重新覆盖. 这个问题真神奇,问题解决请留言点赞~~

php sql 多表查询 分页

1 public function get_search($page=1){ 2 $slide=$_POST['slide']; 3 $page=trim($page); 4 $arr=$this->M->get_all("SELECT a.* FROM `lx_z_news` as a where a.`title` like '%".$slide."%' union all SELECT b.* from `lx_z_product` as b where b