2016-07-06 11 views
0

検索で問題が発生しました。私は言葉を入れていない場合は、このようにそれを見せたい:検索クエリがうまくいきませんでした

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>'; 
    } 
?> 

それを形成します「見つからない」とは示されなかった。どうやってやっていくのか教えてください。

+1

私に見えます。あなたが直面している問題は何ですか?そして、mysql_ *関数を使わないでください。それらは推奨されなくなりました。 –

+3

このコードはSQLインジェクション攻撃に対して脆弱であることに注意してください:http://stackoverflow.com/questions/332365/how-does-the-sql-injection-from-the-bobby-tables-xkcd-comic-work?lq = 1 –

+1

ああ、あなたは 'article'と' WHERE'の間にスペースがありません。参照: 'articleWHERE'。 –

答えて

0

検索フォームに単語を入力しなかった場合、「見つからない」が表示されませんでした。

だけで空除外する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?

関連する問題