如何插入多个选择

时间:2015-08-31 07:52:42

标签: php mysql sql

我有一个列表多选,这是代码:

<form method="post" action="">
      <select name=thematique[] multiple>
        <option value="1"> MIE </option>
        <option value="2">  Migration </option>
        <option value="3"> Réunification familiale </option>
      </select>
      <button type="submit" class="button" name="categoriser">Catégoriser</button>
    </form>

我的问题是如果我选择MIE + Migration +Réunificationfamiliale,那么我的数据库中有3行用于相同的ID。 我想有一行将插入所有选项(0 1 2或3)。

$id_struct=$_POST['id_struct'];
$thematique=$_POST['thematique']);
foreach($thematique as $item) {
                $string= $item.' ';
                echo $string;

    $bdd->exec("INSERT INTO categorisation SET id_thematique=$string
                    WHERE id_struct=$id_struct");
    }

PS:id_thematique是外键。

3 个答案:

答案 0 :(得分:1)

1) 您需要在选择框中添加VALUE属性。

2)不要处理INSERT query AS UPDATE query

您的选择框

<select name=thematique[] multiple>
        <option value="MIE"> MIE </option>
        <option value="Migration"> Migration </option>
        <option value="Reunification_familiale"> Reunification familiale </option>
      </select>

你的php文件插入三个单独的字段

<?php 
foreach ($_POST['thematique'] as $thematique) 
{
 ///your insert code//
 $bdd->exec("INSERT INTO categorisation (`thematique`) VALUES ('".$thematique."'");
}?>

答案 1 :(得分:1)

你可以使用thematique作为对象数组:

$thematiqueArray = array(0=>'MIE', 1=>'Migration', 2=>'Réunification familiale');

设置你的html选项元素:

<option value=0>MIE</option>
<option value=1>Migration</option>
<option value=2>Réunification familiale</option>

和你的POST类似:

$thematique=$_POST['thematique']);
foreach($thematique as $key => $value) {
            $item = $thematiqueArray[$key];
            echo $item;
}

答案 2 :(得分:0)

一种解决方案是为您的选择提供base2值。像1,2,4,8等...然后你可以将所选的值加起来,并知道选择了哪些。但这只有在你不需要其他地方的价值时才有效。