所以我有一个可选服装项目列表作为复选框,可能会有比下面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