2016-09-13 14 views
-1

自分のウェブサイトを検索する検索ボックスを作成しました。私は本当にそれを修正するために試してみましたが、それは動作しませんでした。どうか助けてくれますか?コードは以下である:PHP検索ボックスが機能していませんか?

<?php 
    $k = $_GET['k']; 
    $terms = explode(" ", $k); 
    $query = "SELECT * FROM search WHERE " 

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

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

    $query = mysql_query($query); 
    $numrows = mysql_num_rows($query); 
    if ($numrows > 0){ 
     while ($row = mysql_fetch_assoc($query)) { 
      $id = $row['id']; 
      $title = $row['title']; 
      $description = $row['description']; 
      $keywords = $row['keywords']; 
      $link = $row['link']; 

      echo "<h1><a href='$link'>$title</a></h2>"; 
      $description<br /><br />"" 
     } 
    } 
    else 
     echo "No results found for \"<b>$k/b>\" "; 
    //disconnect 
    mysql_close(); 
    ?> 

+0

問題の原因を特定することで、問題の絞り込みを試みることができます。最初のステップは、コードの先頭に '$ _GET ['k']'が存在することを確認するために 'var_dump($ _ GET)'を挿入することです。 –

+0

は 'for each 'を' foreach'に変更することから始まります有効なループにする – RST

+0

そのコードにはいくつかの誤りがあります。画面に表示されるエラーを見るべきです。例えば、 "構文エラー、 ''のための予期しない ''が最初に出現します。これは$ query変数の最初の部分をエスケープしなかったことを意味します。次のエラーはそれぞれがforeachであるべきであるということです。表示されるエラーを処理します。 –

答えて

0

正しい構文、まず。代わりに:

$query = "SELECT * FROM search WHERE " 
for each ($terms as $each) { 

$query = "SELECT * FROM search WHERE "; 
foreach ($terms as $each) { 

とOUHする必要があり、これは何ですか?

$description<br /><br />"" 

多分あなたは最初に構文の基礎を学びます。

関連する問題