我有一个选择框里面有多个项目选择功能
<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