Codeigniter JOIN查询与DATE之间和LIMIT不起作用

时间:2013-12-11 00:13:17

标签: php mysql codeigniter

我正在尝试根据用户输入年龄(整数)获取人员的详细信息。现在,每当我执行下面的代码时,我的查询总是返回null Array()。我没有指定$postdata数组。您可以看到我使用$postdata['ageto']$postdata['agefrom']用于计算$agefrom$ageto

        $now = new DateTime();

    //Converting _POST age to Date
    $agefrom = date("Y-m-d",strtotime($now->format("Y")-$postdata['ageto'].'-'.$now->format("m").'-'.$now->format("d")));
    $ageto = date("Y-m-d",strtotime($now->format("Y")-$postdata['agefrom'].'-'.$now->format("m").'-'.$now->format("d")));

    $this->db->select('uacc_id, uacc_username, name, dob, city, education');
    $this->db->from('user_accounts as a');
    $this->db->join('personal as b','a.uacc_id = b.pruserid','INNER');
    $this->db->join('profession as c','a.uacc_id = c.puserid','INNER');
    $this->db->join('location as d','a.uacc_id = d.luserid','INNER');
    $this->db->where('dob >= ',$agefrom);
    $this->db->where('dob <= ',$ageto);
    $this->db->limit(10, $offset);
    $query = $this->db->get();
    return $query->result();

我怀疑我的输入帖子没有正确获取数据。所以我用我的简单查询select * from... where dob >....取而代之,它运作良好。所以_POST变量没有问题。我不确定我做错了什么。有人可以帮助我。

2 个答案:

答案 0 :(得分:2)

我认为你必须指定哪个表DOB属于a.dob。对不起该帖子,但我无法发表评论。希望这会有所帮助。

答案 1 :(得分:0)

选择字段应添加表名

$this->db->select('a.uacc_id, a.uacc_username, a.name....); // example

和您的where也添加了表名。

$this->db->where('b.dod >= ', $agefrom); // example

或者您可以输出sql命令。

您可以查看here