1

我有一个我想不通的问题:我有这个多重选择,我想把它放入一个数据库字段(用“,”分隔)......但我一开始就卡住了:

<?
if(isset($_POST[submit])){
    UPDATE MyTable SET `sites` = '$_POST[sites]' WHERE `id` = '$_GET[id]'");
}?>
<select name="sites" multiple="" size="13">
<option value="1">Home</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
<option value="5">Fifth</option>
</select>

问题是:在我的数据库字段中只有一个数字:我选择的最高数字。例如:我选择“Home”和“Third”,我会在我的数据库字段中得到一个“3”......如何解决这个问题?对此有任何提示吗?

4

2 回答 2

3

首先,您需要更改您的姓名select

<select name="sites[]" ....>

这会将变量填充$_POST['sites']为数组。

那么你能做的就是

 UPDATE MyTable SET `sites` = '" . implode(",",$_POST[sites]) . "' WHERE `id` = '$_GET[id]'"
于 2013-06-14T09:47:17.003 回答
2

你需要改变这个

<select name="sites" multiple="" size="13">

对此

<select name="sites[]" multiple="" size="13">

所以sites将成为 $_POST 的子数组:

array (size=1)
  'sites' => 
    array (size=2)
      0 => string '2' (length=1)
      1 => string '4' (length=1)

然后你可以遍历它,并IN在你的 SQL 中使用运算符中的值,或者根据你的需要拆分它们

于 2013-06-14T09:47:38.967 回答