【发布时间】:2015-09-25 01:32:19
【问题描述】:
我有一个 PHP 脚本,我正在尝试使用它从数据库生成搜索结果,其中包含多个搜索文本输入和一个提交。三个输入是术语、关键字和位置。我已经完成了搜索,但我发现验证逻辑有点困难。我将查询分为三个部分,以便当其中一个输入为空时,它可以免除将查询的那部分添加到完整查询中。但是由于 OR 运算符,当第一个输入为空时,其余的都失败了。
第二只眼睛在这里会有所帮助。请不要将此问题标记为过于笼统,只需查看查询,您就会发现问题所在。
$term = mysqli_real_escape_string ($con , $_GET['term'] );
$location = mysqli_real_escape_string ($con , $_GET['location'] );
$keyword = mysqli_real_escape_string ($con , $_GET['keyword'] );
if(empty($term)) {
$term1 = "";
}else{$term1 = "job_title LIKE '%".$term."%'";}
if(empty($location)) {
$loc1 = "";
}else{$loc1 = "location LIKE '%".$location."%'";}
if(empty($keyword)) {
$key1 = "";
}else{$key1 = "OR description LIKE '%".$keyword."%'";}
$sql = "SELECT * FROM jobs WHERE ".$term1." ".$loc1." ".$key1." ";
$r_query = mysqli_query($con,$sql);
while ($joblist = mysqli_fetch_array($r_query)){
$now = date('Y-m-d',time());
【问题讨论】:
-
也许这个帖子对你有用,如果它有效,OP 永远不会回复,但我认为它应该(如果有效,你可以回复吗?)。 stackoverflow.com/questions/32685881/…
-
@chris85 谢谢克里斯,遗憾的是他的逻辑与我的有点不同,因为他没有使用阻碍我的逻辑的 OR 和 LIKE 运算符:(