2016-05-23 13 views
2

コードを書いたことがありますが、動作させることができません。私は自分のデータベースと接続しています。フォームを送信すると、elseブロック(echo "Geen resultaat gevonden voor \"<b>$s</b>\"";)に移動しますPHP検索エンジンでレコードが見つからないのはなぜですか?

私のコードで何が間違っていますか?また、自分のデータベースのスクリーンショットを追加しました。

<body> 

     <h2> hier komt een kleine foto</h2> 
     <form action='./search.php' method='get'> 
      <input type='text' name='s'size='50' value='<?php echo $_GET['s']; ?>' /> 
      <input type='submit' value='Zoek'/> 
     </form> 
     <hr /> 
     <?php  
      $s = $_GET['s'];    
      $terms = explode (" ", $s); 
      $query = "SELECT * FROM 'ID' WHERE "; 

      foreach ($terms as $each){ 
       $i++; 

       if ($i ==1) 
        $query .= "keywords LIKE '%$each%' "; 
       else 
        $query .= "OR keywords LIKE '%$each%' "; 
      } 
      //connect to database 
      mysql_connect("server", "username", "password"); 
      mysql_select_db("database"); 

      $query = mysql_query($query); 
      $numrows = mysql_num_rows($query); 
      if(numrows > 0){ 

       while($row = mysql_fetch_assoc($query)){ 
        $id = $row['id']; 
        $photo = $row['photo']; 
        $title = $row['title']; 
        $description = $row['description']; 
        $price = $row['price']; 
        $Link = $row['Link']; 
        $keywords = $row['keywords']; 

        echo "<h2><a href='$Link'>$title</a></h2> 
        $description<br /><br />"; 
       } 

      } 
      else 
       echo "Geen resultaat gevonden voor \"<b>$s</b>\""; 

      //disconect 
      mysql_close(); 
     ?> 
</body> 
</html> 

enter image description here

+1

これは私の目に見ると痛いです。あなたは[SQLインジェクション、xss]に脆弱です。 –

+0

なぜそれがありますか?私はこの新しいと私を助けることができます –

+0

それは大丈夫です、今のところ心配しないでください –

答えて

0

あなたはこの行のnumrows$を逃してきたように見える:

if(numrows > 0){ 
3

あなたが問題のカップルを持っています。

  • if(numrows > 0){$numrows
  • $query = "SELECT * FROM 'ID' WHERE "されているはずです - あなたは、単一引用符で自分のテーブル名をラップしています。これにより構文エラーが発生します。バッククォート( `)に変更するか、引用符を完全に削除することを検討してください。
  • mysql_*機能を使用しないでください。理由のために非推奨になっています。 PHP manualでは、代わりにmysqli_*ファンクションまたはPDOを使用することを示しています。

最初の問題は現在の問題を解決しますが、2番目の問題ははるかに重要です。

あなたはPHPとMySQLの新機能を搭載しているようですので、正しく学習する良い機会です。

+0

thatsすごく私はそれを調べるつもりだ 私は画像を保存するためにbigblobを追加しましたが、私の現在の "コード"でこれを表示するのは難しいでしょうか? –

+1

@RobinSmietそれをしないでください。データベースは大きなバイナリオブジェクトを格納するのにはあまり適していません。これらのオブジェクトを使用すると、データベースの保守やバックアップが大幅に難しくなります。画像をファイルとして保存し、画像へのパスをデータベースに保存します。 – duskwuff

+0

@duskwffヒントのためにありがとう –

関連する問題