Php 从两个范围之间的数据库获取数据?

Php 从两个范围之间的数据库获取数据?,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在尝试获取用户的休假报告,其中我希望获取两个范围之间的数据,以及休假日期是否位于所选范围之间。 例如 这是我的数据库 假设我选择了2017-06-13至2017-06-17的范围,则应选择第二行;假设我选择了2017-06-21至2017-06-25的范围,则也应选择该范围。我尝试了以下两个不同的查询以获得相同的结果 a b 提前谢谢。我可以看到您的工会查询,查询的位置部分只有一个不同。 通常,当你有复杂的where条件时,你可以像在MySQL中写的那样简单地指定这些条件 $where =

我正在尝试获取用户的休假报告,其中我希望获取两个范围之间的数据,以及休假日期是否位于所选范围之间。 例如 这是我的数据库 假设我选择了2017-06-13至2017-06-17的范围,则应选择第二行;假设我选择了2017-06-21至2017-06-25的范围,则也应选择该范围。我尝试了以下两个不同的查询以获得相同的结果

a

b


提前谢谢。

我可以看到您的工会查询,查询的位置部分只有一个不同。 通常,当你有复杂的where条件时,你可以像在MySQL中写的那样简单地指定这些条件

$where = "((`l`.`from_date` >= '" . $start . "' AND `l`.`from_date` <= '" . $end . "') ".
         "OR (`l`.`to_date` >= '" . $start . "' AND `l`.`to_date` <= '" . $end . "')) ".
          "AND `l`.`status` = '1' AND `u`.`user_type` = 5 AND `u`.`user_status` = '1' AND `u`.`is_deleted` = '0'";
        $this->db->from('usermst u');
        $this->db->join('bat_leavemst l', 'u.user_id = l.user_id');
        $this->db->join('profilemst p', 'u.user_id = p.user_id');
        $this->db->where($where,NULL,FALSE);
        $this->db->order_by('user_name');
        $result = $this->db->get();

请帮自己一个忙,通过显示示例查询词和要获取的行以及用基于文本的表替换图像来澄清您的问题,以便我们阅读。这可能是你的英语,但我不知道你想让你的查询做什么。你为什么这么做?你可以用简单的方法或条件来做。
$this->db->select("u.user_id, u.user_image, u.user_first_name, u.user_last_name, CONCAT(u.user_first_name,' ', u.user_last_name) AS user_name,u.user_email, p.driver_number,l.status,
        DATE_FORMAT(l.from_date, '%d-%m-%Y') as from_date,
        DATE_FORMAT(l.to_date, '%d-%m-%Y') as to_date", FALSE);

        $this->db->from('usermst u');
        $this->db->join('bat_leavemst l', 'u.user_id = l.user_id');
        $this->db->join('profilemst p', 'u.user_id = p.user_id');
        $this->db->where('l.from_date >=', "$start");
        $this->db->where('l.to_date <=', "$end");
        $this->db->where('l.status', '1');
        $this->db->where(array('u.user_type' => DRIVER, 'u.user_status' => '1', 'u.is_deleted' => '0'));

        $this->db->order_by('user_name');
        $result = $this->db->get();
$where = "((`l`.`from_date` >= '" . $start . "' AND `l`.`from_date` <= '" . $end . "') ".
         "OR (`l`.`to_date` >= '" . $start . "' AND `l`.`to_date` <= '" . $end . "')) ".
          "AND `l`.`status` = '1' AND `u`.`user_type` = 5 AND `u`.`user_status` = '1' AND `u`.`is_deleted` = '0'";
        $this->db->from('usermst u');
        $this->db->join('bat_leavemst l', 'u.user_id = l.user_id');
        $this->db->join('profilemst p', 'u.user_id = p.user_id');
        $this->db->where($where,NULL,FALSE);
        $this->db->order_by('user_name');
        $result = $this->db->get();