我遇到了使用搜索的问题。如果我没有说一句话,我想像这样展示:
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>';
}
?>
如果我没有在搜索表单上写一个字,那么它就没有显示&#34;未找到&#34;。请让我知道我是怎么做的。
答案 0 :(得分:0)
如果我没有在搜索表单上写一个字,那么它就没有显示&#34;未找到&#34; 。
只需更改if
条件即可排除空:
if ($num > 0 && strlen($search) > 0) {
它没有显示的可能原因是,当您搜索%%
时,它包含所有行,因此它在技术上很好搜索。
另外,请不要使用mysql_*
函数,因为它们已被弃用。切换到PDO或mysqli_*
功能。见Why shouldn't I use mysql_* functions in PHP?
您的代码非常容易受到SQL注入攻击。请参阅:How does the SQL injection from the "Bobby Tables" XKCD comic work?