【发布时间】:2012-12-23 06:16:15
【问题描述】:
我在 Codeigniter 中开发了一个网站,在我的模型中我有这样的功能:
function nationList($limit=null, $start=null) {
if ($this->session->userdata('language')=="it")
$this->db->select('nation.id, nation.name_it as name');
if ($this->session->userdata('language')=="en")
$this->db->select('nation.id, nation.name_en as name');
$this->db->from('nation');
$this->db->order_by("name", "asc");
$this->db->limit($limit, $start);
$query = $this->db->get();
$nation = array();
foreach ($query->result() as $row)
array_push($nation, $row);
return $nation;
}
如果进入我的控制器,我无限制地调用函数并且 start 不会返回这样的结果:
$data["nationlist"] = $this->Nation_model->nationList();
如果我设置限制并开始工作! 如果limit和start为null,为什么不返回结果?如果 limit 和 start 为空,我不想创建第二个函数或控件。 当 limit 和 start 为空而没有控件或第二个函数来使代码有用并提高效率时,我该如何解决这个问题?
【问题讨论】:
-
我认为没有
if声明是不可能的。 -
好的...我希望在没有控件的情况下执行此操作..但是为什么当限制和开始为空时查询不返回某些内容? @Mischa
-
您必须查看 CodeIgniter 的源代码,但我假设
$this->db->limit(null, null);在 MySQL 中生成LIMIT 0,0,它返回零数据库行。 -
了解...我认为对于“空”值,查询不会考虑限制
-
查看source code
$this->db->limit(null, null);应该返回LIMIT 1。无论如何,只需添加一个if;-)
标签: php sql codeigniter