【问题标题】:Insert Multiple Values > One Column from POST Form插入多个值 > POST 表单中的一列
【发布时间】:2015-06-25 14:13:31
【问题描述】:

我有一个带有此选择的表单:

<select name="territory[]"><option vaue="None Selected">Please Select</option>
<option value="Argentina">Argentina</option>
<option value="Australia">Australia</option>
// And so on...
</select>

选择选项旁边是一个按钮,他们可以在其中添加具有相同选择选项的另一个国家/地区。现在,当他们提交时,我希望他们进入数据库中名为 COUNTRIES 的一列。所以如果一个人选择了阿根廷、澳大利亚和新西兰等3个国家,他们会在数据库列中显示国家如:

COUNTRIES
------------------
Argentina, Australia, New Zealand

我一直在寻找并且 UNION 已经弹出,但我不确定如何使用它,因为其他字段是单个条目。

INSERT into b_project (NAME,COUNTRIES, CLIENT) 
VALUES ('$_POST[name]','$_POST[countries]','$_POST[client]')

我之前已经使用以下方法将它们插入到表中的新行中:

foreach ($_POST['name'] as $index => $id) 
Then the insert statement with '".$_POST['countries'][$index]."'

但我需要一列中的所有值。非常感谢您的建议。

【问题讨论】:

  • $countries = implode(',', $_POST['countries']);

标签: php mysql


【解决方案1】:

简单(但解决方法)的答案:

$countries = implode(',', $_POST['countries']);

这将用逗号连接国家/地区。

你应该怎么做:

在您的表格中使用另一个表格,您可以在其中提供所有国家/地区。
然后,当用户提交表单时,您需要另一个将 country_id 与 b_project_id 映射的表。对于每个国家/地区,您都会在该表中找到一条记录。

工作量有点大,但应该这样做。

最后一条建议:
请清理输入。您不确定用户将使用 POST 数据发送什么。它可以是一切......

【讨论】:

  • 是的,我考虑过第二种方式,为国家/地区创建一个表格。我觉得这会是最好的方法,然后通过项目ID映射到项目表
猜你喜欢
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-17
  • 2019-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多