我正在尝试在codeigniter中运行查询。从前端获取的值有3个,这3个值是
$location
$min_exp
$max_exp
如果里面有一个值,那么它需要包含在where条件中,所以我为所有3个值创建了这样的查询
if($location)
{
$this->db->where('location', $location );
}
if($min_exp)
{
$this->db->where('experience >= ', $min_exp );
}
if($max_exp)
{
$this->db->where('experience <= ', $max_exp );
}
$data1 = $this->db->get('tablename');
$first_array[] = $data1->result_array();
echo $this->db->last_query();
SELECT * FROM `tablename` WHERE `location` = 'USA' AND `experience` >= '4' AND `experience` <= '10'
但是这个查询没有根据条件获取结果,当我尝试在phpmyadmin中执行查询时,它也会显示所有数据。
任何人都可以告诉我哪里出错了以及我需要如何纠正它
答案 0 :(得分:0)
您的where
子句应该如下所示:
WHERE `location` = 'USA' AND
`experience` >= 4 AND `experience` <= 10
请注意location
的相等性以及experience
缺少单引号。
答案 1 :(得分:0)
似乎所有if()
条件都没有任何值,因此查询会为您提供所有记录。
首先检查所有具有值的变量
if(!empty($location))
{
var_dump($location); //OR
print_r($location);
}
如果所有变量都没有值,那么所有行都将返回,否则WHERE
条件将适用