PHP 複数条件の検索について
こんにちは。現在PHPを独学で学習しています。
現在、データベースにある情報を複数の条件で検索したいのですが、検索結果が表示されません。
具体的に、htmlは表示されますが、検索結果(データベースに入っている情報)が表示されません。
表示されないのは何故なのか、もしお分かりの方がいましたら、ご教授ください。
- SQLが発行できていない
- データベースに接続できていない。
- その他
もしくは、現在のコードをベースに、複数検索できるコードがありましたら、教えて頂けますでしょうか。
現在のコード
<form method="post" action="searchtest.php">
<div class="studentinfo">
<p>顧客番号: <input type="text" name="id"></p>
<p>担当者: <input type="text" name="Staff_Name"></p>
<p>ステータス: <input type="text" name="Status"></p>
</div>
<div class="Schoolinfo">
<p>名前: <input type="text" name="Name"></p>
<p>キャンパス: <input type="text" name="Campus" ></p>
<p>コース開始日: <input type="date" name="Start_Date" ></p>
</div>
<div>
<input type="submit" value="検索する">
</form>
searchtest.php
<?php
$search =filter_input(INPUT_POST,'search');
$id =filter_input(INPUT_POST,'id');
$Staff_Name=filter_input(INPUT_POST,'Staff_Name');
$Status =filter_input(INPUT_POST,'Status');
$Name =filter_input(INPUT_POST,'Name');
$Campus =filter_input(INPUT_POST,'Campus');
$Start_Date=filter_input(INPUT_POST,'Start_Date');
if(!is_null($search)){
$sql ="SELECT * FROM studentinfo WHERE 1 ";
$data=[];
if(!is_null($id)){
$sql.="AND id=? ";
$data[]=$id;
}
if(!is_null($Staff_Name)){
$sql.="AND Staff_Name LIKE ? ";
$data[]="%".$Staff_Name."%";
}
if(!is_null($Status)){
$sql.="AND Status=? ";
$data[]=$Status;
}
if(!is_null($Campus)){
$sql.="AND Campus LIKE ? ";
$data[]="%".$Campus."%";
}
if(!is_null($Name)){
$sql.="AND Name LIKE ? ";
$data[]="%".$Name."%";
}
if(!is_null($Start_Date)){
$sql.="AND Start_Date=? ";
$data[]=$Start_Date;
}
if(count($data)==0) $sql.="AND 0 ";
$stmt = $pdo->prepare($sql);
$stmt->execute($data);
}
?>
よろしくお願いいたします。