Ale*_*eri 14 php sql codeigniter
我在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;
}
Run Code Online (Sandbox Code Playgroud)
如果进入我的控制器,我会无限制地调用该函数,并且start不会返回如下结果:
$data["nationlist"] = $this->Nation_model->nationList();
Run Code Online (Sandbox Code Playgroud)
相反,如果我设置限制并开始工作!如果limit和start为null,为什么不返回结果?如果limit和start为null,我不想创建第二个函数或控件.如果在没有控件或第二个函数的情况下限制和启动为null以使代码变得有用并且效率更高,我该如何解决这个问题呢?
Dee*_*epu 23
试试这个...
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");
if($limit!='' && $start!=''){
$this->db->limit($limit, $start);
}
$query = $this->db->get();
$nation = array();
foreach ($query->result() as $row)
array_push($nation, $row);
return $nation;
}
Run Code Online (Sandbox Code Playgroud)
对于其他访客:
// Executes: SELECT * FROM mytable LIMIT 10 OFFSET 20
// get([$table = ''[, $limit = NULL[, $offset = NULL]]])
$query = $this->db->get('mytable', 10, 20);
// get_where sample,
$query = $this->db->get_where('mytable', array('id' => $id), 10, 20);
// Produces: LIMIT 10
$this->db->limit(10);
// Produces: LIMIT 10 OFFSET 20
// limit($value[, $offset = 0])
$this->db->limit(10, 20);
Run Code Online (Sandbox Code Playgroud)