我该如何做这项工作?
我有一个包含3个表的数据库。
表1:类别
表2:组织
表3:具有2个列的链接表:类别ID,组织ID。
我想制作这个界面:
http://www.glowong.nl/Uploads/26-03-2012-13-46-52.jpg
当我点击'Opslaan / save'时。新连接应写入表3.
我不知道从哪里开始。
答案 0 :(得分:1)
我不知道这与您的用户界面有什么关系,但您似乎要求的是INSERT INTO
命令从SELECT
获取其数据。例如:
INSERT INTO table3 ( category, organization )
SELECT categ.name,org.name FROM categ, org
WHERE categ.id=org.categ;
但是如果你试图将这部分用作用户界面,那么也许你真的不希望这是第三个表和PHP中的数组一样多。用于填充HTML表单。我认为我对数据的存储方式知之甚少,无法以有用的方式对其进行评论。
答案 1 :(得分:1)
1)当您呈现页面HTML时,使每个组织成为一个命名的复选框数组,其中值是类别,如下所示:
<INPUT type="checkbox" name="naam1[]" value="Hosting">
<INPUT type="checkbox" name="naam1[]" value="Crediteur">
<INPUT type="checkbox" name="naam1[]" value="Debiteur">
....
<INPUT type="checkbox" name="naam2[]" value="Hosting">
<INPUT type="checkbox" name="naam2[]" value="Crediteur">
<INPUT type="checkbox" name="naam2[]" value="Debiteur">
等
2)提交表单后,循环遍历您的组织/类别:
foreach ($orgs as $org) {
foreach ($categories as $category) {
if (in_array($category,$_POST[$org])) {
//the category for the given org was checked;
//make sure this relationship exists in the DB
} else {
//category for this org not checked;
//if the relationship exists in the DB, delete it
}
}
}
我认为这样的事情会起作用。如果你有一大堆orgs和类别,你可能会遇到问题,因为我们在循环中进行了笛卡尔式连接,但如果你有很多组织和类别,你可能需要重新考虑你的界面。< / p>