【发布时间】:2018-04-25 18:44:36
【问题描述】:
使用我当前的代码,当我在搜索输入字段中输入一个空字符串或一个空格的字符串时,我会得到数据库中的每个项目作为结果。我怎样才能使它在输入空字符串时不运行搜索?
<form action="search.php" method="POST">
<input type="text" name="search" placeholder="search site">
<button type="submit" name="submit-search"><img src="../assets/search icon-05.png"></button>
</form>
<?php
if (isset($_POST['submit-search'])){
$search = mysqli_real_escape_string($conn, $_POST['search']);
$sql = "SELECT * FROM articles WHERE title LIKE '%$search%' OR abstract LIKE '%$search%' OR keywords LIKE '%$search%'";
$result = mysqli_query($conn, $sql);
$queryResult = mysqli_num_rows($result);
if ($queryResult > 0){
echo $queryResult . " results found";
while ($row = mysqli_fetch_assoc($result)){
echo "<div class='articleItem'>
<h2>".$row['title']."</h2>
<p>".$row['abstract']."</p>
<a href=".$row['link']." target='_blank'>".$row['link']."</a>
</div>";
}
}
else {
echo "There are no results matching your search.";
}
}
?>
【问题讨论】:
-
您可以将查询和响应包装在一个条件中,检查
trim($_POST['search'])是否为空,然后在这种情况下不运行查询。
标签: php html mysql database search