[英]Search query not working in PHP
My search query not working when I search with empty field(String) it returns all result 当我使用空字段(字符串)搜索时,我的搜索查询不起作用,它返回所有结果
Here is the code: 这是代码:
if(isset($_GET['submit1']))
{
$skills=trim($_GET['skillset']);
$city=trim($_GET['city']);
$state=trim($_GET['state']);
$expinmonth=trim($_GET['expinmonth']);
$result = mysqli_query($dbc,"select * from seeker where (skillset like '%$skills%') or (city like '%$city%') or (state like '%$state%') or (expinmonth like '%$expinmonth%')");
if(!mysqli_num_rows($result) == 0)
{
while($data = mysqli_fetch_array($result))
{
echo .$data['fname'].' '.$data['lname'];
}
}
else
{
echo 'No Results';
}
}
I suspect what you are trying to do is check for blank fields when a field is skipped. 我怀疑您要执行的操作是跳过某个字段时检查空白字段。 In which case something like this:-
在这种情况下:
<?php
if(isset($_GET['submit1']))
{
$skills = mysqli_real_escape_string($dbc, trim($_GET['skillset']));
$city = mysqli_real_escape_string($dbc, trim($_GET['city']));
$state = mysqli_real_escape_string($dbc, trim($_GET['state']));
$expinmonth = mysqli_real_escape_string($dbc, trim($_GET['expinmonth']));
$result = mysqli_query($dbc,"select *
from seeker
where ".(($skills == '' ) ? "skillset = ''" : "skillset like '%$skills%'")."
or ".(($city == '' ) ? "city = ''" : "city like '%$city%'" )."
or ".(($state == '' ) ? "state = ''" : "state like '%$state%'")."
or ".(($expinmonth == '' ) ? "expinmonth = ''" : "expinmonth like '%$expinmonth%'")." ");
if(!mysqli_num_rows($result) == 0)
{
while($data = mysqli_fetch_array($result))
{
echo .$data['fname'].' '.$data['lname'];
}
}
else
{
echo 'No Results';
}
}
?>
Further to the comment by DrCopyPaste, if you just want to ignore blank input:- 如果您只想忽略空白输入,那么在DrCopyPaste的评论之后:-
<?php
if(isset($_GET['submit1']))
{
$skills = mysqli_real_escape_string($dbc, trim($_GET['skillset']));
$city = mysqli_real_escape_string($dbc, trim($_GET['city']));
$state = mysqli_real_escape_string($dbc, trim($_GET['state']));
$expinmonth = mysqli_real_escape_string($dbc, trim($_GET['expinmonth']));
$result = mysqli_query($dbc,"select *
from seeker
where 1=2
".(($skills != '' ) ? " OR skillset like '%$skills%'" : "")."
".(($city != '' ) ? " OR city like '%$city%'" : "")."
".(($state != '' ) ? " OR state like '%$state%'" : "")."
".(($expinmonth != '' ) ? " OR expinmonth like '%$expinmonth%'" : "")." ");
if(!mysqli_num_rows($result) == 0)
{
while($data = mysqli_fetch_array($result))
{
echo .$data['fname'].' '.$data['lname'];
}
}
else
{
echo 'No Results';
}
}
?>
Try like this...Just a little change in your query 尝试这样...只是查询中的一点变化
if(isset($_GET['submit1']))
{
$skills=trim($_GET['skillset']);
$city=trim($_GET['city']);
$state=trim($_GET['state']);
$expinmonth=trim($_GET['expinmonth']);
$result = mysqli_query($dbc,"select * from seeker where (skillset like '%$skills%' and skillset <> '') or (city like '%$city%' and city <> '') or (state like '%$state%' and state <> '') or (expinmonth like '%$expinmonth%' and expinmonth <> '')");
if(!mysqli_num_rows($result) == 0)
{
while($data = mysqli_fetch_array($result))
{
echo .$data['fname'].' '.$data['lname'];
}
}
else
{
echo 'No Results';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.