Re: [請益] PHP搜尋的動態語法~~
※ 引述《idcomputer (順)》之銘言:
: 資料表設計為
: ID-----流水編號
: NAME---名稱
: S1-----分類1
: S2-----分類2
: S3-----分類3
: S4-----分類4
: S5-----分類5
: 在某個搜尋頁面用核取方塊利用勾選的方式進行分類的搜尋
: EX
: 我要搜尋名稱的分類為分類1、分類3的項目
: 此時把分類1&3的核選方塊勾選,然後送出進行搜尋
: 請問在ACTION的頁面
: 用POST 取得到五種分類的值之後
: 有什麼好方法進行有效的搜尋呢?!
: $a=$s1;
: $b=$s2;
: $c=$s3;
: $d=$s4;
: $e=$s5;
: 如果只有S1 S2 S3有被勾選
: 那該如何寫這段動態的SQL
: 讓查詢的內容顯示為
: select * from table where s1=$a and s2=$b and s3=$c......?!
: 不知道有沒有先進們願意指導一下
: 感恩
如果願意花時間會有更優雅的寫法 (如不限定條件數量).
不過要解決你現有的問題, 可以用簡單的方式:
$i = 0;
if ($s1) $cond[$i++] = "$a=$s1";
if ($s2) $cond[$i++] = "$b=$s2";
if ($s3) $cond[$i++] = "$c=$s3";
if ($s4) $cond[$i++] = "$d=$s4";
if ($s5) $cond[$i++] = "$e=$s5";
if ($cond[0]) $cond_str = "where " + $cond[0];
for ($j=1; $j<$i; $j++) {
$cond_str += ("and " + $cond[$j]);
}
$sql = "select * from table $cond_str";
我五年沒寫 PHP,這是剛隨手寫的,
所以我不能保證我的 code 無誤。
不過這種解法應該沒問題,
你可以朝這個想法去改你的程式。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.164.169
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章