2016-08-16 5 views
-1

私はプログラミングの世界に新しいです。私は検索機能を備えたアプリを開発中です。 私の問題は、次のコードはデータベースから検索データを出力できないということです。 header_php経由でこの出力にデータベース接続を接続するためにrequire_onceコマンドを使用しています。検索エンジンの問題 - 出力することができません

助けてください。

<!DOCTYPE html> 
 
<html lang=""> 
 

 
<?php require_once('Include/Top.php');?> 
 

 
<body> 
 
    <?php require_once('Include/header.php'); ?> 
 
<centre> 
 
      <div class="searchboxsearch"> 
 
       <div class="row"> 
 
        <div class="col-xs-12"> 
 
         <br><br><br><br> 
 
         <form action="" method="get"> 
 
         <div class="form-group"> 
 
           <input type="text" id="usermame" class="form-control" name="username" placeholder="Search a Name"> 
 
         </div> 
 
         <input type="submit" name="submit" class="btn btn-primary" value="Search"> 
 
         </form> 
 
        </div> 
 
       </div> 
 
      </div>     
 
        <?php 
 
        
 
        $sname = $_GET['username']; 
 
        $terms = explode(" ", $sname); 
 
        
 
        
 
        foreach ($terms as $each) 
 
        { 
 
         $i++; 
 
         if ($i == 1) 
 
          $query .= "keywords LIKE '%$each%'"; 
 
         else 
 
          $query .= "keywords LIKE '%$each%'"; 
 
        } 
 
        $query = "SELECT * FROM feedback WHERE $query"; 
 

 
        $srun = mysqli_query($connection, $query); 
 

 
         if (mysqli_num_rows($srun) > 0) 
 
          { 
 
           while($row = mysqli_fetch_assoc($srun)) 
 
           { 
 
            $name =ucfirst($row['fullname']); 
 
            $date =$row['date']; 
 
            $feedback = $row['feedback']; 
 
            
 
            echo "<h3> $name</a></h3> 
 
            $feedback <br /> $stdate"; 
 
           } 
 
          
 
         }else 
 
          { 
 
           echo " No result found"; 
 
          } 
 
      ?> 
 

 
</centre> 
 
<?php require_once('Include/footer.php'); ?> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
 
</body> 
 
</html>

ありがとう

KP

+0

表示されたエラーは何ですか? – MuthaFury

+0

他のインクルードファイルでデータベースに接続しましたか?もし私たちがコードを表示したり、何を得ているのかを私たちに教えてください –

+0

あなたのコードはSQLインジェクションにひどく脆弱です。 ''; DROP \t TABLE \t feedback;'(単純なスペースで分割しないようにするためのタブに注意してください) –

答えて

1

あなたがLIKEの間でANDやORを追加する必要があり、複数の検索語を持っている場合あなたのループは、有効なSQLを構築していませんもちろん、スペースもあります。

foreach ($terms as $each) 
{ 
    $i++; 
    if ($i == 1) 
     $query .= "keywords LIKE '%$each%'"; 
    else 
     $query .= " OR keywords LIKE '%$each%'"; 
} 

$query = "SELECT * FROM feedback WHERE $query"; 
$srun = mysqli_query($connection, $query); 


// in future add a test after issuing any query to the database 
// and echo the error, the messages are normally self explanatory 
if ($query === false) { 
    echo mysqli_error($connection);   
    exit; 
} 

スクリプトがSQL Injection Attack の危険にさらされているが偶数Little Bobby Tablesに何が起こったのかを見てください if you are escaping inputs, its not safe! 使用prepared statement and parameterized statements

+0

こんにちはRiggsFolly、コードを探して、私はまだ結果を出力することはできませんが、私は私がクエリから行方不明にルーキーミスをしたに違いないと思います。また、私はSQLインジェクション攻撃に警告してくれてありがとう。私はそれについて読んでおり、そのためのコードを準備しています。 私のコードがデータベースからの結果を生成しない理由は何ですか? 私のDBはheader.phpで接続されており、$ connectionはデータベース接続の出力です。 ご協力いただければ幸いです。 –

関連する問題