首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个字段的PHP和MYSQL动态搜索在日期范围内失败

问具有多个字段的PHP和MYSQL动态搜索在日期范围内失败
EN

Stack Overflow用户
提问于 2017-02-22 14:42:31
回答 1查看 396关注 0票数 1

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

代码语言:javascript
复制
$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'  ";
}

但是,当我向其添加以下代码并指定两个日期之间的日期范围时,它会给出这两个日期之间的值,但随后搜索其他字段将不起作用,或者跳过上面的代码。会出什么问题呢?!

代码语言:javascript
复制
if(strlen($adv_s_FromDate)>0 && strlen($adv_s_ToDate)>0)
{
    $query .=" and  (date between '$adv_s_FromDate' and '$adv_s_ToDate')  ";
}
EN

回答 1

Stack Overflow用户

发布于 2017-02-22 15:09:19

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

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

代码语言:javascript
复制
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');

这个查询在我的数据库上给出了正确的结果。请检查你的代码,也许你遗漏了一些东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42384418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档