CodeIgniter查询不会返回正确的数据

时间:2017-03-28 15:21:20

标签: php mysql codeigniter

所以我有两个表customersagenda

我想要获得的是user_id的所有客户以及他们的下一次约会。

这是我得到了多远,但这仍然是错误的日期

        $today = date("Y-m-d");

        $this->db->select('c.firstname,c.lastname,a.date as next_appointment');
        $this->db->from('customers c');
        $this->db->join('agenda a','a.customer_id = c.customer_id AND a.date > '.$today.'','left');
        $this->db->where('c.user_id', $user_id, FALSE);
        $this->db->group_by('c.customer_id');
        $this->db->order_by('c.firstname', 'asc');

        $Q = $this->db->get();

        die(json_encode($Q->result_array()));

以下是结果的屏幕截图

image

所有这些日期应该在未来,否则它应该返回NULL

注意:可能导致此问题的另一个小问题是,无论我如何加入"left" "right" "inner"它都会返回完全相同的结果。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要在查询中引用您的日期。

$this->db->join('agenda a', 'a.customer_id = c.customer_id AND a.date > "'.$today.'"', 'left');

否则,您的日期将被解释为一个数字,例如2017-03-281986(因为这是您减去时得到的数据)。

你也可以这样做:

$this->db->join('agenda a', "a.customer_id = c.customer_id AND a.date > '{$today}'", 'left');