chenjq
发表于 2010-4-30 11:52:48
新手。
这个分页类具体怎么使用啊,请高手给一段代码,代码里最好有model、view、controller。
我自己使用了,可是报如下错:
A PHP Error was encountered
Severity: Warning
Message: preg_match() : Unknown modifier '.'
Filename: controllers/manage.php
Line Number: 60
还有$this->load->model('blog/listpage','list'); 是不是就是调用'blog/listpage'model中的list方法
还是返回list,如果list是返回值,那么它调用的是model中的那个方法。
这段:preg_match("/index.php/.*?/(d.*)/",$_SERVER['PHP_SELF'],$tt);有什么作用。
在线等待......
chenjq
发表于 2010-4-30 11:54:21
求助:model中的方法怎么写?
atxlin
发表于 2010-4-30 17:20:51
这个如何使用?
jingsong27
发表于 2010-5-1 16:47:49
顶你一个
jackbang
发表于 2010-5-17 14:26:50
本帖最后由 jackbang 于 2010-5-17 15:02 编辑
还有$this->load->model('blog/listpage','list'); 是不是就是调用'blog/listpage'model中的list方法还是返回list,如果list是返回值,那么它调用的是model中的那个方法。
------list是给'blog/listpage'定义的一个别名也可以叫对象名,以后就可以用$this->list->方法。
在用户指南里是这样描述的:
如果你想给你的model指派一个不同的对象名,可以在加载模型函数中指定第二个参数:
$this->load->model('Model_name', 'fubar');
$this->fubar->function();
这段:preg_match("/index.php/.*?/(d.*)/",$_SERVER['PHP_SELF'],$tt);有什么作用。
----preg_match是字符串比对解析。返回值: 整数/数组。作用如下:
本函数以 pattern 的规则来解析比对字符串 subject。比对结果返回的值放在数组参数 matches 之中,matches 内容就是原字符串 subject、matches 为第一个合乎规则的字符串、matches 就是第二个合乎规则的字符串,余类推。若省略参数 matches,则只是单纯地比对,找到则返回值为 true。
$tt就是比较的结果,你在控制器方法里可以看到
if($tt){
$page=$tt;
}
else{
$page=1;
}
建议看一下正则表达式就知道什么意思了。
求助:model中的方法怎么写?
----看一下$data['query']=$this->list->list_page($start,$pagesize);
可知list_page()实际上就是把一个结果集赋给$query,$start是起始的记录,$pagesize是该页一共有多少条记录。
则该Model里的方法可以这样写:
function list_page($start,$pagesize);
{
//验证一下两个参数是否为数字且为正常范围值,否则异常。(该段略)
$query = $this->db->get('mytable',$pagesize , $start);//为什么$pagesize在前,$start在后可查阅一下CI手册。
$rows = array();
foreach ($query->result_array() as $row){
$rows[] = $row;
}
return $rows;
}
基本上就是这样了,不知可否,给初学者一个入门吧,我也是初学者。谢谢!
vsgeping
发表于 2010-5-27 13:47:58
强烈支持
xpengzp
发表于 2010-6-15 15:26:04
本帖最后由 xpengzp 于 2010-6-19 22:16 编辑
Controller:
public function arraytest() {
$this->load->Model('test');
$this->load->library('showpage');
$pagesize = 3; // 每页显示数量
//dump($_SERVER['PHP_SELF'], 'PHP_SELF');
preg_match("/index.php\/.*?\/(.*?)\/(\d.*)/",$_SERVER['PHP_SELF'],$tt);
//dump($tt, 'TT');
if ($tt) {
$page = $tt;
} else {
$page = 1;
}
if($this->input->post('name', true) != null) {
$this->test->count_record(array('name' => $this->input->post('name', true)));
$total = $this->test->count_record(array('name' => $this->input->post('name', true)));
$data['rows'] = $this->test->find_All(array('name' => $this->input->post('name', true)), null, 'name', $page*$pagesize-$pagesize, $pagesize);
} else {
$this->test->count_record();
$total = $this->test->count_record();
$data['rows'] = $this->test->find_All(null, null, null, $page*$pagesize-$pagesize, $pagesize);
}
$this->showpage->showpage($total, $pagesize);
$data['page'] = $this->showpage->getContent();
$this->load->view('welcome_message',$data);
Model 代码:
class Test extends Model {
public function __construct() {
parent::Model();
}
// 统计符合条件的记录数
public function count_record($conditions = null) { // $conditions = array();
if (!empty($conditions)) {
$this->db->like($conditions);
}
$this->db->from('ci_areacity');
return $this->db->count_all_results();
}
/**
*返回符合条件的记录集
*
* @var array $conditions
* @var array $fields
* @var string$order
* @var int $page
* @var int $pagesize
* @return array
*/
public function find_All($conditions = null, $Fields = null, $order = null, $page = 0, $pagesize = 10) {
if(!empty($conditions)) {
$this->db->like($conditions);
}
if (!empty($Fields)) {
$this->db->select($Fields);
}
if (!empty($order)) {
$this->db->order_by($order);
}
$this->db->limit($pagesize, $page);
$query = $this->db->get('ci_areacity');
return $query->result_array();
}
}
View 代码:
<table width="370" border="1" cellspacing="1" cellpadding="0">
<tr>
<td height="40" colspan="4"><table width="666" border="0" cellspacing="0" cellpadding="0">
<?php echo form_open('admin/arraytest'); ?>
<tr>
<td width="30" height="21"> </td>
<td width="63">名称:</td>
<td width="175"><input type="text" name="name" id="textfield" /></td>
<td width="50"><input type="submit" name="button" id="button" value="提交" /></td>
<td width="48"> </td>
</tr>
<?php echo form_close(); ?>
</table></td>
</tr>
<tr>
<td height="24" colspan="4"> </td>
</tr>
<tr>
<td><div align="center">ID</div></td>
<td><div align="center">Code</div></td>
<td><div align="center">Name</div></td>
<td><div align="center">Action</div></td>
</tr>
<?phpforeach($rows as $row): ?>
<tr>
<td height="24"><?php echo $row['id']; ?></td>
<td><?php echo $row['code']; ?></td>
<td><?php echo $row['name']; ?></td>
<td align="center">编辑 | 删除</td>
</tr>
<?phpendforeach; ?>
<tr>
<td height="24" colspan="4"> </td>
</tr>
<tr>
<td height="24" colspan="4" align="right"><?php echo $page; ?></td>
</tr>
</table>
注:本例没有使用showpage类中的getStart()方法
zhanglei_0202
发表于 2010-6-28 18:01:26
太好了,谢谢LZ,东西拿走了
lany415e
发表于 2010-8-4 09:50:52
Message: preg_match() : Unknown modifier '.'
这个错误怎么办啊。
lovepinkor
发表于 2010-8-30 19:36:05
正在学习相关的东西
谢谢楼主~