如何在单个字段</select>中存储<select>标记中的多个选定值

时间:2012-08-12 12:23:39

标签: php mysql database forms

我有一个multiple="multiple"的选择标记。用户可以选择多个值。

<label for="aoi">Area of Interest:</label>
<select id="sel_aoi" name="aoi" multiple="multiple">
    <option value="hr-executive">HR Executives</option>
    <option value="sr-manager">Sr. Manager</option>
    <option value="service-advisor">Service Advisor</option>
    <option value="production">Production Engineer</option>
    <option value="mechanical">Mechanical Engineer</option>
</select>

如何在MySQL数据库的单个字段中存储这些多个选定值?

2 个答案:

答案 0 :(得分:4)

将其存储到数组中,并使用逗号分隔将值保存到数据库。

<label for="aoi">Area of Interest:</label>
          <select id="sel_aoi" name="aoi[]" multiple="multiple">
            <option value="hr-executive">HR Executives</option>
            <option value="sr-manager">Sr. Manager</option>
            <option value="service-advisor">Service Advisor</option>
            <option value="production">Production Engineer</option>
            <option value="mechanical">Mechanical Engineer</option>
          </select>

process.php

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

答案 1 :(得分:0)

当你从$_POST获取你的值时,用mysql插入它们会插入多个这样的值:

insert into myTable 
    (someColumn, someOtherColumn) 
values 
    (someValue1, someOtherValue1), 
    (someValue2, someOtherValue2), 
    (someValue3, someOtherValue3)

编辑:如果你想在一行中使用像PHP implode():

这样的东西
$qry="insert into mytable (someColumn) values (".implode(',',$myArray).")

并不是说你想确保$myArray变量清除任何可能SQJ注入攻击你数据库的东西。准备好的陈述将是一个建议。