如何在一列中插入多个选择框项


How to insert multiple selectbox item in one column

我有一个选择框里面有多个项目选择功能

<select multiple="" class="form-control" name="mul[]">
                                <option value="1">1</option>
                                <option value="2">2</option>
                                <option value="3">3</option>
                                <option value="4">4</option>
                                <option value="5">5</option>
                        </select>

这里选择从另一个表动态生成的框项。因此,项目数量可以增加或减少。由于这个原因,我不能使用set data type

现在我想在我的数据库表中插入选定的值。

MY table look like

id  name   item
1   first   mul[] value
2   second  mul[] value

我想在DB表列名为item中插入选中的项。

我还想检索每一行数据。

视图像

id  name   item
1   first   1,2,3
2   second  2,4

我试着

$select_value=$_POST['mul'];
$sql="insert into mytable (`id`, `name`, `item`) VALUES (null, 'Hallo',$select_value)";

使用php内爆函数

http://www.w3schools.com/php/showphp.asp?filename=demo_func_string_implode

在你的例子中,它将是

$select_value=implode(", ", $_POST['mul']);
$sql="insert into mytable (`id`, `name`, `item`) VALUES (null, 'Hallo',$select_value)";

然后插入…:)

试试. .我希望它能帮助你

这将自动将数组更改为字符串,带逗号:

$select_value = join($_POST['mul'],',');

PHP的'implode'是解决方案:

echo implode(",",$_POST['mul']);//here $_POST['mul'] = ['1','2','3']

它将输出字符串"1,2,3",插入到你的表中。

关于内爆的更多信息

同样,如果你想用你的选项值从DB表中检索记录,那么sql的FIND_IN_SET()函数将是有用的,查询将是:

SELECT * FROM mytable WHERE FIND_IN_SET('option_value',`item`) <>0