Re: [請益] PHP搜尋的動態語法~~

看板PHP作者 (該死的菜鳥)時間17年前 (2008/08/09 19:51), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #18dOJ72g (PHP)
討論串 (同標題文章)
文章代碼(AID): #18dOJ72g (PHP)