[英]Search Query Didn't Work Well
我在使用搜索時遇到問題。 如果我不說一句話,我想這樣顯示:
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注入如何工作?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.