我正在MySQL中创建一个庞大的关系数据库,并使用PHP处理表单。MySQL表有以下字段:
- 服务器名称
- Location_id
- 位置_联系人
- app_contact_O
- app_contact_contact
- OS_id
- 数据库_id
- 供应商_id
- 上次更新(_U(
- 更新者
对于每个服务器名称,可以有多个位置联系人、app_contact_O、app_contact_Contacts和Database_id。
多个字段通过下拉菜单输入,您可以在下拉菜单中选择多个选项。
如何将多个字段放入数据库。我尝试了许多不同的解决方案,但都没有找到任何有效的解决方案。
我可以使用foreach((循环从一个下拉菜单将结果输入MySQL,但我需要倍数的帮助。
我这个页面的代码大约有438行长。。。我认为这对社区没有什么用处。
=========================
好的,让我用缩写形式澄清一下:
我有以下表格:
<form action="" method="post">
Server Name: <input type="text" name="Server_Name" size="40" /><br />
Location: <select name="servLocation">
<option value="none" selected="selected">Select Location</option>
<?php
$getLocation=mysql_query("SELECT * FROM locationTable ORDER BY Location");
while($r=mysql_fetch_array($getLocation)){
extract($r);
echo "<option value='" . $Location_id . "'>" . $Location . ": " . $City . ", " . $Country . ", " . $GSL_id . "</option>";
}
?>
</select>
<br />
Location Contact:
<select name="servLocCon[]" multiple='multiple' size="3">
<option value="none" selected="selected">Select Contact</option>
<?php
$getContacts=mysql_query("SELECT * FROM hpatt.contacts ORDER BY Last_Name");
while($r=mysql_fetch_array($getContacts)){
extract($r);
echo "<option value='" . $Contact_id . "'>" . $Last_Name . ", " . $First_Name . "</option>";
}
?>
</select><br />
Application Contact:
<select name="servAppCon[]" multiple='multiple' size="3">
<option value="none" selected="selected">Select Contact</option>
<?php
$getContactsB=mysql_query("SELECT * FROM hpatt.contacts ORDER BY Last_Name");
while($r=mysql_fetch_array($getContactsB)){
extract($r);
echo "<option value='" . $Contact_id . "'>" . $Last_Name . ", " . $First_Name . "</option>";
}
?>
</select><br />
<input type="submit" name="submit" value="Submit" />
</form>
好的,所以我想做的是让用户可以选择为一台服务器选择多个位置联系人和应用程序联系人。这是使用大小和多个属性来完成的。然后,我希望在MySQL表中插入一个单独的记录,如下所示:
记录1:ServerA、Wendel Holmes、John Smith
记录2:ServerA、Wendy Martin、John Smith
记录3:ServerA、Wendel Holmes、Juanita Gomez
记录4:ServerA、Wendy Martin、John Smith
这样,每一种可能性都得到了处理,然后就可以提取出来。我可以通过单独创建记录手动完成这项工作,但PHP应该能够做到这一点。
例如,对于具有多个值的location字段,您可以创建一个具有相同名称的表(location:id,name(和其他名为location_server(id_location,id_server(
我不确定我是否完全理解你的意思,但说我有一张桌子:
SID Server Name
1 S1
2 S2
3 S3
我会制作一个外部参照表,例如:
SID Prop1 Prop2 ... PropX
1 1 2 11
1 2 5 12
2 1 1 33
3 4 2 4
在这种情况下,SID在外部参照表中被多次使用。
每个道具实际上都是其他表格中的一个ID。
然后,我在外部参照表上制作了一个多列键,以防止重复的行。
您可以以与单选类似的方式获得多选的所有POST/get结果。
例如,使用serverLocCon[]
:
$sLocCon = $_POST['servLocCon'];
foreach ($sLocCon as $item)
...