【发布时间】:2017-07-12 02:02:20
【问题描述】:
我已经使用 PHP 和 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') ";
}
【问题讨论】:
-
最后输入
echo $query并检查您的查询,它将帮助您调试。 -
这听起来可能很疯狂,但是这个简单的 echo $query 让我对我正在做什么和请求什么有了足够的了解,我可以设法解决这个问题。非常感谢:)
-
现在看看 sql 注入和参数化查询
-
@Stawbery,你这是什么意思?我该怎么办?
标签: php mysql search dynamic field