複数検索項目があり、部分一致検索の項目と完全一致検索の項目が混じっている検索フォームを作っています。
例として、検索項目が
ID(完全一致) テーブル名:t1
姓(部分一致) テーブル名:t1
名(部分一致)テーブル名:t1
コード(完全一致)←IDと紐付けて別テーブルからleft joinしてきて取得テーブル名:t2
の項目があるとします。
まず
$sql = " select t1.id,t1.mei,t1.sei,t2.code from t1 ";
として
where句を足していくと思うのですが
どのように動的に書いてよいかわかりません。
例えば
$search_param =array();
$search_param[] = id;
$search_param[] = mei;
$search_param[] = sei;
$search_param[] = code;
$count =0;
foreach($search_param as $val){
if($count ==0){
$sql .= "where."t1.". $val."=?";
}else{
$sql .= " AND."t1.".val."=?";
}
$count++;
}
で基本的な動的sqlは作れるのですが
IDは、完全一致、姓名は部分一致、コードは完全一致のためこの先どうやってsqlを組み立てればよいか悩んでいます。
また、上記のコードですと、
検索項目のコードがPOSTされた時、
where句が
t1.code = t1.code;
となってしまいエラーが出てしまいます。
ここをt1.code = t2.code;としたいのですが、
いまいちわかりません。
上記の二つを解決するには、どうしたらよいですか
非常に困っています。ご教授お願い致します
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。