I have many nested ifs and conditions in my code but it is not giving the desired output. What is the best way to write the following code :
$driver_code = $this->input->post('filter_driver_code');
$unit_code = $this->input->post('filter_unit_code');
$fuel_type = $this->input->post('filter_fuel');
$date_to = $this->input->post('date_to');
$date_from = $this->input->post('date_from');
if (isset($date_from) and isset($date_to) and empty($unit_code) and empty($driver_code) and empty($fuel_type)) {
$sql = "SELECT * FROM fuel_usage where (date between '$date_from' and '$date_to') ";
$result = $this->db->query($sql);
} elseif (isset($driver_code) and isset($unit_code) and isset($fuel_type) and isset($date_from) and isset($date_to)) {
$sql = "SELECT * FROM fuel_usage where driver_code='$driver_code' AND unit_code='$unit_code' AND fuel_type='$fuel_type' and (date between '$date_from' and '$date_to')";
$result = $this->db->query($sql);
} elseif (empty ($date_from) and empty ($date_to) and isset ($unit_code) and isset ($driver_code) and isset ($fuel_type)) {
$sql = "SELECT * FROM fuel_usage where driver_code='$driver_code' AND unit_code='$unit_code' AND fuel_type='$fuel_type'";
$result = $this->db->query($sql);
} else {
$sql="SELECT * FROM FUEL_USAGE";
$result = $this->db->query($sql);
}
It does not give the right output.