如果post中的值不等于空白,并且当两个post值中的值都运行得很好时,我想要加入查询。问题是,当值只在一个post中时,那么AND
将先于任何其他的第二个值。希望能找到解决办法。我正在使用核心PHP
if(!empty($_POST['agent_wise'])){
$agent_wise = $_POST['agent_wise'];
$queryCondition .= "allusers.sno ='$agent_wise'";
}
if(!empty($_POST['status_wise'])){
$status_wise = $_POST['status_wise'];
$queryCondition .= " AND st_application.admin_status_crs ='$status_wise'";
}
if(!empty($_POST['course_wise'])){
$course_wise = $_POST['course_wise'];
$queryCondition .= " AND st_application.prg_name1 ='$course_wise'";
}
$result2 = "SELECT * FROM st_application INNER JOIN allusers on st_application.user_id = allusers.sno where " . $queryCondition . " ";
发布于 2018-07-24 05:38:50
这是解决办法..。
$flag = 0;
if(!empty($_POST['agent_wise'])){
$flag = 1;
$agent_wise = $_POST['agent_wise'];
$queryCondition .= "allusers.sno ='$agent_wise'";
}
if(!empty($_POST['status_wise'])){
$status_wise = $_POST['status_wise'];
if($flag == 1){
$queryCondition .= " AND st_application.admin_status_crs ='$status_wise'";
}
else {
$queryCondition .= " st_application.admin_status_crs ='$status_wise'";
$flag = 1;
}
}
if(!empty($_POST['course_wise'])){
$course_wise = $_POST['course_wise'];
if ($flag == 1){
$queryCondition .= " AND st_application.prg_name1 ='$course_wise'";
}
else {
$queryCondition .= " st_application.prg_name1 ='$course_wise'";
}
}
$result2 = "SELECT * FROM st_application INNER JOIN allusers on st_application.user_id = allusers.sno where " . $queryCondition . " ";
发布于 2018-07-24 05:30:09
试试这段代码。
if(!empty($_POST['agent_wise'])){
$agent_wise = $_POST['agent_wise'];
$queryCondition .= "allusers.sno ='$agent_wise'";
}
if(!empty($_POST['status_wise'])){
$status_wise = $_POST['status_wise'];
$queryCondition .= " AND st_application.admin_status_crs ='$status_wise'";
}
if(!empty($_POST['course_wise'])){
$course_wise = $_POST['course_wise'];
$queryCondition .= " AND st_application.prg_name1 ='$course_wise'";
}
$queryCondition = trim($queryCondition, 'AND');
$result2 = "SELECT * FROM st_application INNER JOIN allusers on st_application.user_id = allusers.sno where " . $queryCondition . " ";
我希望它能帮上忙
发布于 2018-07-24 05:30:08
懒散的做法是在第一个条件中也包含一个AND
,并将WHERE
更改为WHERE 1
,但是有更聪明的,而且我怀疑可以很容易地搜索到解决这个问题的方法。哦,也看到了sql注入和准备语句的重要性。
https://stackoverflow.com/questions/51490935
复制相似问题