検索エンジンを搭載したウェブサイトを開発しています。
検索用に次の形式を持つ index.html にいるとします。
<form method ="post" name="search" action="search.php?go">
<input accesskey="s" type="text" size="20px" name="find" id="fastsearch" alt= "search" value="search..." />
<input type="hidden" name="searching" value="yes" />
<input id="searchicon" type="submit" value="" style="border-style: none; background: url('searchsmall.png') no-repeat;"/>
</form>
それから、その下の高度な検索に加えて結果を持つ次の search.php があります。
結果の部分は次のとおりです。
$searching = $_POST['searching'];
$find = $_POST['find'];
if ($searching =="yes") {
echo "<h2>Results</h2><p>";
if ($find == "")
{
echo "<p>You forgot to enter a search term";
exit;
}
//Connect to mysql server
$con = mysql_connect($DB_HOST, $DB_USER, $DB_PASSWORD);
if(!$con) {
die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db($DB_DATABASE);
if(!$db) {
die("Unable to select database");
}
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
$date = $_POST['date'];
$category = $_POST['category'];
$data ="SELECT * FROM event WHERE upper(title) LIKE'%".$find."%'OR date LIKE '%".$date."%' OR upper(category_id) LIKE ".$category." ORDER BY date;" ;
$result=mysql_query($data );
if($result) {
while($info = mysql_fetch_array( $result ))
{
echo "<a href=' ".$info['url']." '> ".$info['title']." </a><br/>";
echo "<br>";
}
}
else
{
echo "Sorry, but we can not find an entry to match your query<br><br>";
echo "<b>Searched For:</b> " .$find;
}
}
最後に、高度な検索部分を次に示します。
<form method ="post" name="search" action="<?=$PHP_SELF?>" style="margin-top: 20px;">
<div class="blockbody" style="width: 700px;">
<h3 class="blocksubhead">Advanced search </h3>
<div class="section">
<!--<div class="blockrow">
<label for="keyword">Search by title: </label>
<input type="text" name="keyword" name="find" >
</div >-->
<div class="blockrow">
<label for="category"> Category </label>
<select name="category">
<option VALUE="CONFERENCE"> Conference </option>
<option VALUE="WORKSHOP"> Workshop </option>
<option VALUE="ACTIVITY"> Activity </option>
</select>
</div>
<div class="blockrow">
<label for="date">Search by date </label>
<input type="date" name="date">
</div>
</div>
<div class="actionbuttons">
<input type="submit" name="search" value="Search" />
</div>
</div>
</div>
</form>
私の質問は、php ファイルがそれ自体のファイルとそのフォームで送信された別のファイルの両方から変数を取得するようにするにはどうすればよいかということです。インデックス内のものに投稿を使用し、高度な検索のものに取得しようとしましたが、投稿と取得の両方を同じファイルに作成することは正しくありません。そして、それらをすべて取得させたとき..変数(検索、検索、日付、カテゴリ)がnod宣言されているというエラーが発生しましたか?:/
注意: *Find は index.html からの検索語です *searching は、index.html でも検索を使用したかどうかを確認するための値です。
※日付は同じsearch.phpファイルでの入力日付、詳細検索時※カテゴリは選択値で、オプションにより異なります。また、search.php
ところで、それは私が開発した最初のウェブサイトです。情報やコードが多すぎて申し訳ありませんが、どこに問題があるのか わかりません。