这是我的搜索代码,它可以工作但是当我打印时甚至没有输入任何字符。它仍然搜索。最糟糕的是,它会打印数据库中的所有项目,我该怎么做。感谢。
if(isset($_GET['search'])) {
$search_value= $_GET['searchbox'];
//$sql="SELECT idemp,sn FROM employee
//WHERE idemp like '%$search_value%' OR
//sn like '%$search_value%'";
$sql = "select * from employee where (id_no like '%$search_value%' OR sn like '%$search_value%')";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "'$result->num_rows' result/s for '$search_value'";
print "<br><br>";
答案 0 :(得分:1)
您可能需要将if条件更改为
if(isset($_GET['search']) && !empty($_GET['searchbox'])){
// do search
}
答案 1 :(得分:0)
if(isset($ _ GET ['search']))将返回true,因为它被设置为空字符串。
if(isset($_GET['search']) && $_GET['search'] )
是您正在寻找的条件
答案 2 :(得分:0)
首先检查你是否收到任何字符串, 只有在你得到的东西时运行你的查询。
if(isset($_GET['searchbox']) && $_GET['searchbox'] != ''){
$search_value= $_GET['searchbox'];
$sql = "select * from employee where (id_no like '%$search_value%' OR sn like '%$search_value%')";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "'$result->num_rows' result/s for '$search_value'";
print "<br><br>";
}