Active Record 类 相关问题
$this->load->database();$this->db->select('user_name');
$this->db->from('user');
$this->db->like('user_name', 'test');
$nums = $this->db->count_all_results();
$this->db->order_by('user_name','asc');
$this->db->limit($page['page_size'], $page['pageStart']);
$result = $this->db->get();
$data['table_data'] = $result->result_array();
我自己写了一个分页的类
要查询出当前满足条件的记录总数
用的是$nums = $this->db->count_all_results();这句
接下来要查询出满足条件指定范围的数据
结果它说没有可用的表,给我感觉好像是
$this->db->count_all_results()执行过后前面指定的
表名,查询条件好像都不在了,在下边又得重新指定
要真的这个样子的话,有没得别的哈子办法,我只想指定一次件条
谢谢 咋个没人呢? 本帖最后由 lcnphp 于 2010-6-9 19:30 编辑
你可以把查询条件和查询总数分离出来发,分别写一个函数。
使用类的clone啊
function __clone()
{
foreach ($this as $key => $value)
{
if (is_object($value))
{
$this->{$key} = clone($value);
}
}
}
function get_clone()
{
return clone($this);
}
clone可以放在模型中,一般数据库操作都在模型中好吧,然后copy一份model,把count_all_results函数和get函数分开使用,因为两种确实是不可以共存的 这里涉及到php类的引用传递,在php4中实例化一个类也就copy了一份,但是在php5中需要用clone魔术方法来实现拷贝,而count_all_results函数会改变sql语句的连续性,使用count_all_results后get函数得到的就是select * form talble_name了。
页:
[1]