PHP&具有多个字段的MYSQL动态搜索无法使用日期范围

时间:2017-02-22 06:42:31

标签: php mysql search dynamic field

我已经使用PHP& amp;构建了一个动态搜索MySQL的。一切正常,代码可以同时搜索多个值。

$query="";
$query .=" select * from customers where 1 ";  

if(strlen($adv_s_city)>0){  
    $query .=" and  city = '$adv_s_city'  ";
}             
if(strlen($adv_s_personalIdType)>0)
{             
    $query .=" and  pesonal_identity_type = '$adv_s_personalIdType'  ";
}
if(strlen(isset($_POST['adv_s_gender'])) > 0)
{                 
    $query .=" and  gender = '$adv_s_gender'  ";
}

但是,当我还向它添加下面的代码并指定两个日期之间的日期范围时,它会给我这两个日期之间的值,但是搜索其他字段将无效或者它会跳过代码。什么可能出错?!

if(strlen($adv_s_FromDate)>0 && strlen($adv_s_ToDate)>0)
{
    $query .=" and  (date between '$adv_s_FromDate' and '$adv_s_ToDate')  ";
}

1 个答案:

答案 0 :(得分:0)

您的代码生成的查询类型对我来说很好。我使用的是mysql 5.7.13版。可能错误在生成查询的代码中。尝试打印完整的查询并在mysql中运行它以获得清晰的视图。也许有些变量是空的,所以这些条件不会添加到查询中。

我在我的数据库中使用了类似的查询,如下所示:

SELECT * FROM database.subsection where 1 and subsection_type='textbox' and subsection_position=2 and (creation_time between '2016-09-29 18:46:41' and '2016-09-30 10:56:40');

此查询在我的数据库中给出了正确的结果。请检查你的代码,也许你错过了那些东西。