-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();
?>
問題の原因を特定することで、問題の絞り込みを試みることができます。最初のステップは、コードの先頭に '$ _GET ['k']'が存在することを確認するために 'var_dump($ _ GET)'を挿入することです。 –
は 'for each 'を' foreach'に変更することから始まります有効なループにする – RST
そのコードにはいくつかの誤りがあります。画面に表示されるエラーを見るべきです。例えば、 "構文エラー、 ''のための予期しない ''が最初に出現します。これは$ query変数の最初の部分をエスケープしなかったことを意味します。次のエラーはそれぞれがforeachであるべきであるということです。表示されるエラーを処理します。 –