我在使用搜索时遇到问题。如果我不说一句话,我想这样展示它:
Not found
代码是这样的:
<?php
error_reporting(0);
$search = trim($_POST["search"]);
$search = htmlentities(htmlspecialchars($search), ENT_QUOTES);
$select = "SELECT * FROM articleWHERE article_title LIKE '%" . $search . "%' ORDER BY id_artikel DESC LIMIT 12";
$query = mysql_query($select);
$num = mysql_num_rows($query);
if ($num > 0) {
while ($fetch = mysql_fetch_array($query)) {
echo '<div class="row">';
echo ' <div class="col-md-4">';
echo ' <div class="news-post standard-post2">';
echo ' <div class="post-gallery">';
echo ' <img src="#" alt="">';
echo ' <a class="category-post world" href="#">Business</a>';
echo ' </div>';
echo ' <div class="post-title">';
echo ' <h2><a href="#">' . $fetch["article_title"] . '</a></h2>';
echo ' <ul class="post-tags">';
echo ' <li><i class="fa fa-clock-o"></i>' . date("d F Y") . '</li>';
echo ' <li><i class="fa fa-user"></i>by <a href="#">' . $fetch["writer"] . '</a></li>';
echo ' <li><a href="#"><i class="fa fa-comments-o"></i>23</a></li>';
echo ' <li><i class="fa fa-eye"></i>' . $fetch["read"] . '</li>';
echo ' </ul>';
echo ' </div>';
echo ' <div class="post-content">';
echo ' <p>' . substr(strip_tags($fetch["content"]), 0, 150) . "..." . '</p>';
echo ' <a href="artikel.php" class="read-more-button"><i class="fa fa-arrow-circle-right"></i>Read More</a>';
echo ' </div>';
echo ' </div>';
echo ' </div>';
echo '</div>';
}
} else {
echo '<p align="center">Not Found</p>';
}
?>
如果我没有在搜索表单上输入单词,它就不会显示"未找到"。请让我知道我该怎么做。
如果我没有在搜索表单上输入单词,它就不会显示"未找到"。
只需更改if
条件以排除空:
if ($num > 0 && strlen($search) > 0) {
它不显示的可能原因是,当您搜索%%
时,它包括所有行,因此从技术上讲,它是很好的搜索。
另外,请不要使用mysql_*
函数,因为它们已被弃用。切换到PDO或mysqli_*
功能。请参阅为什么我不应该在 PHP 中使用 mysql_* 函数?
而且您的代码非常容易受到SQL注入攻击。参见:来自"Bobby Tables"XKCD漫画的SQL注入是如何工作的?