[実現したいこと]
以下の検索フォーム(index.html)にて、検索したデータに該当するものをブラウザに表示させたいです。
[うまくいくこと]
prefecture=>"東京都"
にしてすると、うまくprefecture=東京都のレコードのみ抽出されて表示されます。
[うまくいかないこと]
prefecture=>"東京都"
type=>"保育園"
上記条件で検索するとtype=>"保育園"が適用されずprefecture=東京都のレコードのみ抽出されて表示されます。
[教えて欲しいこと]
prefecture=>"東京都"
type=>"保育園"
上記2点のどちらのデータも含むものをDBから抽出されて表示する場合、コードのどこを修正すべきでしょうか?
[環境]
ローカル開発環境、MacOSX,mysql
index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <tittle>入力フォーム</title> </head> <body> <form method="post" action="SEARCH_Show.php"><br> 園名<br> <input type="text" name="name" size="60" maxlength="30" value=""><br> 電話番号<br> <input type="tel" name="tel" size="30" maxlength="12" value=""><br> 担当者名<br> <input type="text" name="person_name" size="30" maxlength="20" value=""><br> 都道府県<br> <select name="prefecture"><br> <option value="全て">全て</option> <option value="東京都">東京都</option> <option value="神奈川県">神奈川県</option> <option value="千葉県">千葉県</option> <option value="埼玉県">埼玉県</option> </select><br> 市区町村<br> <input type="text" name="city" size="30" maxlength="30" value=""><br> 分類<br> <select name="type"><br> <option value="全て">全て</option> <option value="保育園">保育園</option> <option value="幼稚園">幼稚園</option> <option value="サークル">サークル</option> <option value="その他">その他</option> </select><br> <button type="submit" class="">検索</button> </form> </body> </html>
検索後ブラウザ表示php
<?php require 'Manager.php'; require 'Escape.php'; ini_set('display_errors',1); ?> <!DOCTYPE html> <html lang = "ja"> <head> <meta charset ="UTF-8"> <tittle>登録ページ</tittle> </head> <body> <table border='1' class="TableStyle1" width="1000"> <tr> <th>名称</th> <th>都道府県</th> <th>市区町村</th> <th>番地</th> <th>区分</th> <th>電話番号</th> <th>担当者名</th> <th>部数</th> <th>設置/配布</th> <th>消去</th> </tr> <?php try{ $db = connect(); $name=$_POST['name']; $tel=$_POST['tel']; $person_name=$_POST['person_name']; $prefecture=$_POST['prefecture']; $city=$_POST['city']; $type=$_POST['type']; if($name){ $sql = "SELECT * FROM zenkoku where name=:name"; $stmt = $db->prepare($sql); $stmt->bindParam(':name',$name); $stmt->execute(); }elseif($tel){ $sql = "SELECT * FROM zenkoku where tel=:tel"; $stmt = $db->prepare($sql); $stmt->bindParam(':tel',$tel); $stmt->execute(); }elseif($person_name){ $sql = "SELECT * FROM zenkoku where person_name=:person_name"; $stmt = $db->prepare($sql); $stmt->bindParam(':person_name',$person_name); $stmt->execute(); }elseif($prefecture=="全て" && $city==NULL && $type="全て"){ $sql = "SELECT * FROM zenkoku"; $stmt = $db->prepare($sql); $stmt->execute(); }elseif($prefecture =="東京都" && $city==NULL && $type="全て"){ $sql = "SELECT * FROM zenkoku where prefecture = :prefecture"; $stmt = $db->prepare($sql); $stmt->bindParam(':prefecture',$prefecture); $stmt->execute(); }elseif($prefecture =="東京都" && $city==NULL && $type="保育園"){ $sql = "SELECT * FROM zenkoku where prefecture = :prefecture AND type=:type"; $stmt = $db->prepare($sql); $stmt->bindParam(':prefecture',$prefecture); $stmt->bindParam(':type',$type); $stmt->execute(); }elseif($prefecture =="神奈川県" && $city==NULL && $type="全て"){ $sql = "SELECT * FROM zenkoku where prefecture = :prefecture"; $stmt = $db->prepare($sql); $stmt->bindParam(':prefecture',$prefecture); $stmt->execute(); }elseif($prefecture =="千葉県" && $city==NULL && $type="全て"){ $sql = "SELECT * FROM zenkoku where prefecture = :prefecture"; $stmt = $db->prepare($sql); $stmt->bindParam(':prefecture',$prefecture); $stmt->execute(); }elseif($prefecture =="埼玉県" && $city==NULL && $type="全て"){ $sql = "SELECT * FROM zenkoku where prefecture = :prefecture"; $stmt = $db->prepare($sql); $stmt->bindParam(':prefecture',$prefecture); $stmt->execute(); }elseif($prefecture=="全て" && $city==NULL && $type=="保育園"){ $sql = "SELECT * FROM zenkoku where type=:type"; $stmt = $db->prepare($sql); $stmt->bindParam(':type',$type); $stmt->execute(); }elseif($prefecture=="全て" && $city==NULL && $type=="幼稚園"){ $sql = "SELECT * FROM zenkoku where type=:type"; $stmt = $db->prepare($sql); $stmt->bindParam(':type',$type); $stmt->execute(); }elseif($prefecture=="全て" && $city==NULL && $type=="サークル"){ $sql = "SELECT * FROM zenkoku where type=:type"; $stmt = $db->prepare($sql); $stmt->bindParam(':type',$type); $stmt->execute(); }elseif($prefecture=="全て" && $city==NULL && $type=="その他"){ $sql = "SELECT * FROM zenkoku where type=:type"; $stmt = $db->prepare($sql); $stmt->bindParam(':type',$type); $stmt->execute(); }else{ echo "do again"; } while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ ?> <tr> <td><?php es($row['name']);?></td> <td><?php es($row['prefecture']);?></td> <td><?php es($row['city']);?></td> <td><?php es($row['address']);?></td> <td><?php es($row['type']);?></td> <td><?php es($row['tel']);?></td> <td><?php es($row['person_name']);?></td> <td><?php es($row['copies']);?></td> <td><?php es($row['set_type']);?></td> </tr> <?php } }catch(PDOException $e){ echo $e->getMessage(); exit; } ?> </table> </body> </html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/24 13:23
2017/11/24 13:26
2017/11/24 14:47