您的位置:首页 > 数据库

Discuz! X3.2学习记录:多数据记录页面增加分页控件

2016-12-06 20:40 621 查看
    通过简单配置参数,在页面底端显示分页控件,每页显示10条记录。

运行结果:



涉及到的文件:

/gycp.php
/source/class/table/table_gycp.php
/source/module/gycp/gycp_publish.php
/template/default/gycp/gycp_publish.htm

/gycp.php:

<?php

/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
*
* $Id: gycp.php cuibq $
*/

define('APPTYPEID', 101);
define('CURSCRIPT', 'gycp');

require './source/class/class_core.php';

$discuz = C::app();

$discuz->reject_robot();
$modarray = array('gycp', 'gycp_publish');

$mod = getgpc('mod');
$mod = (empty($mod) || !in_array($mod, $modarray)) ? 'error' : $mod;

$discuz->init();

define('CURMODULE', $mod);

require DISCUZ_ROOT.'./source/module/gycp/gycp_publish.php';

?>

/source/class/table/table_gycp.php:
<?php

/**
* [Discuz!] (C)2001-2099 Comsenz Inc.
* This is NOT a freeware, use is subject to license terms
* 工业产品表
* $Id: table_gycp.php
*/

if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}

class table_gycp extends discuz_table
{
public function __construct() {

$this->_table = 'gycp';
$this->_pk = 'id';

parent::__construct();
}

public function fetch_all_by_displayorder() {
return DB::fetch_all('SELECT * FROM %t ORDER BY id DESC', array($this->_table), $this->_pk);
}

public function fetch_all_by_sql($start, $limit) {
return DB::fetch_all('SELECT * FROM %t ORDER BY id DESC'.DB::limit($start, $limit), array($this->_table), $this->_pk);
}

//public function fetch_by_id_username($id, $username, $adminid = 1) {
//return DB::fetch_first('SELECT * FROM %t WHERE id=%d', array($this->_table, $id, $adminid, $username));
//}

//public function delete_by_id_username($ids, $username, $adminid = 1) {
//if(($ids = dintval((array)$ids, true))) {
//DB::query('DELETE FROM %t WHERE id IN(%n)', array($this->_table, $ids, $adminid, $username), false, true);
//}
//}

//public function update_displayorder_by_id_username($id, $displayorder, $username, $adminid = 1) {
//if(($id = dintval((array)$id, true))) {
//DB::query('UPDATE %t SET displayorder=%d WHERE id IN(%n)', array($this->_table, $displayorder, $id, $adminid, $username), false, true);
//}
//}

//public function update_by_id_username($id, $data, $username, $adminid = 1) {
//if(($id = dintval($id, true)) && $data && is_array($data)) {
//$adminid = dintval($adminid);
//DB::update($this->_table, $data, DB::field($this->_pk, $id).')', true);
//}
//}

}

?>

/source/module/gycp/gycp_publish.php:
<?php
// mod文件只能被入口文件引用,不能直接访问
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}

require_once libfile('function/discuzcode');

// -------------------------------------------
// 分页
require_once libfile('function/home');

$perpage = 10;
$perpage = mob_perpage($perpage);

$page = empty($_GET['page'])?0:intval($_GET['page']);//页码
if($page<1) $page = 1;
$start = ($page-1)*$perpage;//开始记录

ckstart($start, $perpage);//分页判断

$count = C::t('gycp')->count();//所有记录数量
$mpurl = 'gycp.php';
// ============================================

$querydata = C::t('gycp')->fetch_all_by_sql($start, $perpage);

$queryarr = array();
foreach ($querydata as $gycp) {
$queryarr[] = $gycp;
}

$multipage = multi($count, $perpage, $page, $mpurl); // 分页

//显示发布表单
include_once template("gycp/gycp_publish");
?>

/template/default/gycp/gycp_publish.htm:
<!--//说明: 显示公共头部模板-->
<!--{template common/header}-->
记录总数量:$count<br/>
<table class="dt mtm">
<!--{loop $queryarr $rec_data}-->
<tr>
<td width="20">$rec_data[ZB]</td>
<td width="30">$rec_data[LJ]</td>
</tr>
<!--{/loop}-->
<tr>
<td width="30"></td>
<td width="20"><!--{if $multipage}-->$multipage<!--{/if}--></td>
</tr>
</table>

<!--//说明: 显示公共尾部模板-->
<!--{template common/footer}-->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  discuz 数据库 分页
相关文章推荐