1つのテキストフィールドと1つの選択ボックスを持つフォームを作成しました。ボタンも作成しました。今、私がしたいのは、ボタンが押されたときに、フォーム内の文字列をデータベースと照合し、それらの照合の結果を返して画面に表示することです。
たとえば、テキストフィールドボックスに「履歴」と入力し、ボタン([送信]ボタン)が押されたときに選択ボックスから[レベル2]を選択した場合、単語と一致するすべてのものをページに返します。履歴と私のデータベースでのレベル2の選択。
PHPを介してページをデータベースに接続する必要があることはわかっていますが、それは正常に実行されましたが、HTMLフォームを取得してデータベースにクエリを実行し、結果を画面に戻す方法がわかりません。
私が作成したいコンセプトに非常に似ているウェブサイトの例については、このウェブページを見てください。http://search.ucas.com/cgi-bin/hsrun/search/search/search.hjx;start=search.HsSearch.run?y=2013&w=H(UCASコース検索)このウェブサイトには複数のテキストフィールドがあり、ボックスと送信ボタンは、私が作成しようとしているものとまったく同じであり、提供される結果は、検索されたものと一致する結果のみです。
以下のコードは、テキストフィールドをデータベースにリンクするという点では機能しますが、テキストフィールドと選択ボックスを取得してデータベースをリンクおよびクエリすることはできません。どちらか一方のみです。両方を同じボタン(検索ボタン)から動作させたい
<form method="post" action="Webpage here" id="searchform">
<input type="text" name="name">
<input type="submit" name="submit" value="Search">
</form>
<form id="form1" name="ExamBoard" method="post" action="Webpage here">
<label for="select"></label>
<select name="ExamBoard" id="select">
<option value="EB1" selected="selected">EB1</option>
<option value="EB2">EB2</option>
<option value="EB3">EB3</option>
</select>
<input type="submit" name="submit" value="Search">
</form>
<p> </p>
<p>
<?php
if(isset($_POST['submit'])){
if(isset($_GET['go'])){
if(preg_match("/^[ a-zA-Z]+/", $_POST['name'])){
$name=$_POST['name'];
//connect to the database
$db=mysql_connect ("Name", "User", "Password*") or die ('I cannot connect to the database because: ' . mysql_error());
//-select the database to use
$mydb=mysql_select_db("Table Name");
//-query the database table
$sql="SELECT ID, CourseName, ExamBoard FROM subjects WHERE CourseName LIKE '%" . $name . "%' ";
//-run the query against the mysql query function
$result=mysql_query($sql);
//-create while loop and loop through result set
while($row=mysql_fetch_array($result)){
$CourseName =$row['CourseName'];
$ID=$row['ID'];
$ExamBoard=$row['ExamBoard'];
//-display the result of the array
echo "<ul>\n";
echo "<li>" . "<a href=\"search.php?id=$ID\">" .$CourseName . " " . "</a></li>\n" ;
echo $ExamBoard . " " . "</a>\n";
echo "</ul>";
}
}
}
}
?>