我想插入多個選中的複選框值插入到一列中,當我搜索它時,我發現用逗號附加值並插入表 例如:在MYSQL數據庫中插入多個複選框值
ID Value
-------------------
1 Veg
2 Non-Veg
3 Chinese
4 Italian
如果用戶選擇1 3 4,則附加逗號如1,3,4並插入表中。用逗號附加 不是有效的方法,有沒有其他方法?請幫我 在此先感謝
我想插入多個選中的複選框值插入到一列中,當我搜索它時,我發現用逗號附加值並插入表 例如:在MYSQL數據庫中插入多個複選框值
ID Value
-------------------
1 Veg
2 Non-Veg
3 Chinese
4 Italian
如果用戶選擇1 3 4,則附加逗號如1,3,4並插入表中。用逗號附加 不是有效的方法,有沒有其他方法?請幫我 在此先感謝
你不應該把多個值一列這將違反數據庫的第一narmal形式:http://en.wikipedia.org/wiki/First_normal_form
只是一列,每布爾型字段喲需要。
創建鏈接表,您可以追加多行(1爲每個選區)將是我想的第一件事...
如何二進制數 例如:
意思
checkbox 1 : true
checkbox 2 : false
checkbox 3 : true
checkbox 4 : false
在分貝它將被存儲像圖5(二進制0101十進制值)
唯一的問題是,如果你想搜索用戶例如複選框3選中。
在這種情況下,只需爲每個複選框用戶檢查添加行。搜索複選框時,您將獲得多行復選框ID。我相信這實際上是最好的選擇。
假設 表將成爲喜歡ORDER_ID 33 TABLEA
order_id item_id
33 1
33 3
33 4
你可以得到價值通過內部聯接 上面的表格和項目,值表
(select * from tableA inner join tableB on tableA.item_id=tableB.item_id)
tableB的
item_id value
1 Veg
2 Non-Veg
3 Chinese
4 Italian
試試這個
$order_id=33;
$ids=$_GET['ids']; // $ids= 1,3,4
$ids_Split= explode(",", $ids);
$cnt=count($ids_Split);
for($i=0;$i<$cnt;$i++)
{
mysql_query("insert into hotel_table(order_id,item_id)
values ($id, $ids_Split[$i])");
}
納文,我不認爲用逗號和附加分裂是有效的方法 – 2012-02-15 09:46:43
您不會將表格中的值插入爲「1,3,4」,我們將爲每個值創建一個新條目。 – 2012-02-15 09:53:06
+1用於詳細描述我所建議的;)最佳解決方案imo – 2012-02-15 10:40:12
這是另一個不錯的主意,是行不通的,如果可能的選項數量可以在未來增加雖然... – 2012-02-15 09:28:00
是的,我有40個複選框現在 – 2012-02-15 09:34:06