今回はoutput.phpに検索枠を作り、その枠に入力した値で検索できるようにしましょう。
<form action="out.php" method="post"> ID:<input type="text" name="id"><br> 性別:<input type="text" name="gender"><br> 地域:<input type="text" name="area"><br> <input type="submit" value="検索"> <input type="button" value="リセット" onClick="resetBtn()"> </form>
リセットボタンの作成
<script> function resetBtn(){ location.href = "http://localhost:8888/db-form2/out.php"; } </script>
検索機能の追加
id検索
'SELECT * FROM mytable WHERE id="'.$id.'" ';
性別か地域のOR検索
'SELECT * FROM mytable WHERE area="'.$area.'" or gender="'.$gender.'" ';
性別と地域のAND検索
'SELECT * FROM mytable WHERE area="'.$area.'" and gender="'.$gender.'" ';
IDか性別と地域の複合検索
'SELECT * FROM mytable WHERE id="'.$id.'" or area="'.$area.'" and gender="'.$gender.'" ';
さらに登録した時間も記録出来るようにデータベースに送信するファイルに以下の変数を追加しておきましょう
$mydate = date('Y-m-d G:i:s');
入力画面
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>会員登録|入力画面</title> </head> <body> <h1>会員登録|入力画面</h1> <form method="post" action="submit.php"> <dl> <dt>お名前</dt> <dd><input type="text" name="name" placeholder="山田太郎" required></dd> <dt>メールアドレス</dt> <dd><input type="email" name="email" required></dd> <dt>性別</dt> <dd> <input type="radio" name="gender" required id="male" value="男性"><label for="male">男性</label> <input type="radio" name="gender" required id="female" value="女性"><label for="female">女性</label> </dd> <dt>お住いの地域</dt> <dd> <select name="area"> <option value="北海道">北海道</option> <option value="東北">東北</option> <option value="関東">関東</option> <option value="中部">中部</option> <option value="近畿">近畿</option> <option value="中国">中国</option> <option value="四国">四国</option> <option value="九州・沖縄">九州・沖縄</option> </select> </dd> </dl> <input type="submit" value="送信"> </form> </body> </html>
送信画面
<?php $name = $_POST['name']; $email = $_POST['email']; $gender = $_POST['gender']; $area = $_POST['area']; $myDate = date('Y-m-d G:i:s'); // セッションの開始 session_start(); $_SESSION['name'] = $name; $_SESSION['email'] = $email; $_SESSION['gender'] = $gender; $_SESSION['area'] = $area; $_SESSION['myDate'] = $myDate; ?> <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>会員登録|送信画面</title> </head> <body> <h1>登録ありがとうございました。</h1> <?php //データベースと接続 $user = 'root'; $pass = ''; $dsn = 'mysql:host=localhost;dbname=mydb-1011;charset=utf8'; $conn = new PDO($dsn, $user, $pass); // データの送信 $sql = 'INSERT INTO mytable(name, email, gender, area, date) VALUES("'.$name.'","'.$email.'","'.$gender.'","'.$area.'", "'.$myDate.'" )'; $stmt = $conn -> prepare($sql); $stmt -> execute(); //セッションの破棄 session_destroy(); ?> </body> </html>
検索結果画面
<?php include('db.php'); ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="utf-8"> <title>結果表示画面</title> </head> <body> <form method="post" action="output.php"> ID:<input type="text" name="id"> 性別:<input type="text" name="gender"> お住いの地域:<input type="text" name="area"> <input type="submit" value="検索"> <input type="button" value="リセット" onClick="resetBtn();"> </form> <script> function resetBtn(){ location.href = "http://localhost/yajima-php1011/member/output.php"; } </script> <?php if(!empty($_POST['id']) || !empty($_POST['gender']) || !empty($_POST['area'])){ $id = $_POST['id']; $gender = $_POST['gender']; $area = $_POST['area']; //var_dump($gender); //テーブルの中の全てのデータを参照 //$sql = 'SELECT * FROM mytable WHERE 1'; //IDを指定してデータを表示 $sql = 'SELECT * FROM mytable WHERE id="'.$id.'" or area="'.$area.'" and gender="'.$gender.'" '; $stmt = $conn -> prepare($sql); $stmt -> execute(); //データがあるだけ全部取得 while(1) { $rec = $stmt -> fetch(PDO::FETCH_ASSOC); //もうデータがなければ「break」でループから抜ける if($rec == false) { break; } // stmtから取得したデータを表示 echo $rec['id'].': '; echo $rec['name'].': '; echo $rec['email'].': '; echo $rec['gender'].': '; echo $rec['area'].': '; echo $rec['date']; echo "<br>"; } //データベース接続切断 $dbh = null; } ?> </body> </html>
データベース接続情報画面
<?php //データベースと接続 $user = 'root'; $pass = ''; $dsn = 'mysql:host=localhost;dbname=mydb-1011;charset=utf8'; $conn = new PDO($dsn, $user, $pass); ?>
コメント