所以我有一個可選服裝項目列表作爲複選框,可能會有比下面5更大的數字。MySql - 在數據庫匹配列中插入數組值(匹配和不匹配)
shoes, pants, skirt, socks, jacket //list of possible choices
在所選項目的jquery中創建一個逗號分隔的數組。比方說,有以下選擇:
shoes, socks, jacket //array posted as $_POST['clothes']
在db,每個客戶都有在衣服上表中的這些選項與「否」的服裝項目下的「是」或。然而,服裝項目被命名有點不同,但映射出相同的選擇:
'clothes' table before insert
customer_id dress_shoes elegant_pants long_skirt ankle_socks biker_jacket
1 no yes no no no
隨着$ _ POST [「衣服」],我通過數組試圖循環,更新相應的字段'是',並在數據庫中將不相應的字段設置爲'no'。我很難做到這一點。
'clothes' table after insert
customer_id dress_shoes elegant_pants long_skirt ankle_socks biker_jacket
1 yes no no yes yes
我做了一個array_intersect獲得的物品將其標記爲「是」:
$clothesArray = array("shoes", "socks", "jacket"); // Posted clothes
$clothesArrayAll = array("shoes", "pants", "skirt", "socks", "jacket"); // All clothes
$common = array_intersect($clothesArrayAll,$clothesArray);
print_r($common);
Array ([0] => shoes [3] => socks [4] => jacket)
我試圖以某種方式遍歷$ clothesArrayAll,給一個「是」普通的衣服,對陣列中的所有其他人都是「不」。然後,我試圖通過PDO更新'服裝'表格,以最有效的方式將每個相應的字段設置爲'是'或'否'。我被困在上面的常用衣服陣列後,不知道如何繼續。
有人可以幫我嗎?
謝謝!
那麼,它的SQL你那麼與那時相處得很困難?您將需要一種方法來映射PHP和實際數據庫之間的列名稱。 – TMan
@TMan喋喋不休 - 是否有一個特定的原因,PHP和SQL之間的名稱不匹配? – endyourif
@TMan它將$ clothesArrayAll映射到數據庫中的列,並將SQL有效地提交給它們。我想在PHP中可能會有一種方法來映射它們,也許在陣列中玩耍,並不確定。 – Wonka