資料表設計為
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......?!
不知道有沒有先進們願意指導一下
感恩
************************************************************************
有點類似像
○ 商店 ○ 全新品
○ 有相片 ○ 二手品
○ 新刊登 ○ 一元起
○ 無底價 ○ 免運費
○ 直購價 ○ 固定價
○ 輕鬆付 ○ 輕鬆付刷卡
假設每個CHECKBOX都是一個資料欄位的話
像YAHOO拍賣那樣透過CHECKBOX的值去進行篩選查詢
用PHP的話該如何去進行篩選查詢呢?!
如果有~會有這個變數~
假設核取方塊的名稱分別為~
分類一
分類二
分類三
如果三個都有打勾送出~
在SERVER端會有這三個變數~
$_POST['分類一']
$_POST['分類二']
$_POST['分類三']
你只要檢查變數是否有被指定~
EX.
$sql = "Select * From db Where ";
$i = 0;
if (isset($_POST['分類一'])){
$sql .= "分類一 = ".$_POST['分類一'];
$i++;
}
if (isset($_POST['分類二])){
if ($i > 0){
$sql .=" and " ;
}
$sql .= "分類二 = ".$_POST['分類二'];
$i++;
}
if (isset($_POST['分類三'])){
if ($i > 0){
$sql .=" and " ;
}
$sql .= "分類三 = ".$_POST['分類三'];
$i++;
}
用一個欄位來記錄
假設enum 欄位(商品,有相片,心刊登.......)
商品=1
有相片=2
心刊登=4
...=8
...=16
以此類推
如果你要查'商品' and '有相片'
1+2=3
可以用 select * from table where 欄位=3
這樣會比較好嗎?!?!
可是這樣要把checkbox的值存入資料欄位中
********************************
<form name="form1" method="POST" action="check1.php">
<input name="id" type="hidden" id="id">
姓名
<input name="name" type="text" id="name">
1
<input name="a[]" type="checkbox" id="a" value="1">
登山
2
<input name="a[]" type="checkbox" id="a" value="2">
電影
3
<input name="a[]" type="checkbox" id="a" value="4">
玩水
4
<input name="a[]" type="checkbox" id="a" value="8">
睡覺
<input type="submit" name="Submit" value="送出">
</form>
**********************************
該怎麼把取得的變數陣列加總儲存到enum的欄位中?!?!?!?!?!?!!?!?!
是用好像是該用foreach函數
可是不知道該怎麼去運用
有高手願意指點一下嗎!?!
感激不盡
既然你已經有想法了~
怎麼不是測試看看了~
你就會知道你這樣是不可行的~
以你的例子來說~
如果全部打勾~
你在PHP上面拿$_POST['a[]']的值會是8~
以就是說~
瀏覽器只會送出最後一個值~
$a=array_sum($_POST['a']);
echo $a;
$name = $_POST['name'];
******************
後來透過array_sum終於將各選項的值加總
那麼存入資料表的時候
id int(10) 否 auto_increment
name text utf8_general_ci 是 NULL
a enum('1','2','4','8') utf8_general_ci 是 NULL
資料表這樣設計是對的嗎?!
感覺好像怪怪的
假設勾選1 AND 4
加總起來為1+4=5
但欄位好像只限制1,2,4,8這四個值 所以無法將數值存進資料表
想請問如果想用使用ENUM來進行多條件篩選的話
資料表的結構該如何設計呢?!
內文搜尋

X