PHPで検索画面を作るには

■ 処理の概要

検索処理は検索条件を入力する画面と、入力された検索条件を受け取って検索を行うスクリプトから成り立ちます。ここでは、検索条件を入力するフォームをkensaku.html、kensaku処理用スクリプトをkensaku.phpとして作成します。検索対象のテーブルはtsumiki_tblで、名前でデータを絞るものとします。

■ 検索条件入力画面の作成

まず、検索条件の入力画面を作成します。検索条件は名前のみで、名前のテキスト入力項目を作成します。

kensaku.html

<html>
<body>
<form action = "kensaku,php" method="post">
名前:<input type="text" name="nm">
年齢:<input type="text" name="age">
<input type="submit" name="exec" value="検索">
</form>
</body>
</html>

■ 検索スクリプトの作成

検索処理は今まで何度か見てきましたが、今回は固定的なSQL分ではなく、フォームによって送信されてきた内容により動的にSQL文を変化させます。

kensaku.php

<html>
<body>
<?
//データベースに接続
if (!$con = mysql_connect("localhost", "mysql", "password")) {
echo "接続エラー" ;
exit ;
}

//データベースを選択
if (!mysql_select_db("tsumiki", $con)) {
echo "データベース選択エラー" ;
exit ;
}

//フォームで送られてきた条件を元にSELECT文を作成
$sql = "select id, name, age from tsumiki_tbl " ;
$sql . = "where name like '%$nm% ' " ;

//SELECT文を実行
if (!$res = mysql_query($sql)) {
echo "SQLエラー<BR>" ;
exit ;
}

//検索結果表示
echo "<table border=1>" ;
echo "<tr><td>id</td><td>name</td><td>age</td></tr>" ;
while($row = mysql_fetch_array($res)){
echo "<tr>" ;
echo "<td>" . $row["id"] . "</td>" ;
echo "<td>" . $row["name"] . "</td>" ;
echo "<td>" . $row["age"] . "</td>" ;
echo "</tr>" ;
}
echo "</table>" ;

//結果セットの開放
mysql_free_result ($res) ;

//データベースから切断
mysql_close($con) ;
?>

</body>
</html>

検索条件のLIKEでは、入力された条件$nmの前後に%(ワイルドカード)をつけています。この場合、名前の中に$nmが含まれるデータがすべて取得されます。

■ 検索の確認

それでは、実際に検索を行ってみましょう。ブラウザから作成したkensaku.htmlにアクセスしてみます。

1. 名前には「鈴」と入力してみましょう。

2. [検索]ボタンをクリックして検索を行います。

LIKEによるあいまい検索が実行されて、検索結果が表示されました。

<< 戻る

RIKO's Trial Page | Shirley's i-box | Shirley's little box