将选择多个表单中的值添加到 mysql

Posted

技术标签:

【中文标题】将选择多个表单中的值添加到 mysql【英文标题】:Add value from select multiple form to mysql 【发布时间】:2015-12-27 17:40:25 【问题描述】:

我选择了多个这样的表单:

<label style="width: 150px; float: left">Co Auditor</label>
<select name="co_auditor_nip[]" multiple = 'multiple' size=6>
<?php
foreach ($co_auditor_nip->result() as $row)


    echo '<option value="'.$row->nip.'"';
     if($co_auditor_nip_choosen == $row->nip)
      
          echo 'selected="selected"';
      

     echo' >'.$row->nama.'</option>';

?>
</select><br>

然后我想像这样使用 php codeigniter 将值插入数据库:

$co_auditor_nips['co_auditor_nip']  = addslashes($this->input->post('co_auditor_nip'));

$this->db->query("INSERT INTO r_audit VALUES (' ', '$company_code', '$company_name', '$branch_code',
        '$branch_name','$business_unit', '$lead_auditor_nip', '$lead_auditor', '$co_auditor_nips', '$co_auditor',
        '$periode_audit_from','$periode_audit_to', '$tanggal_audit_from', '$tanggal_audit_to', '$auditee', '$auditee_jabatan',
        '$auditee_email',
        '$auditee_2','$auditee_2_jabatan' ,'$auditee_2_email', '$cc_email', 'started', '1')");

但我在数据库上的列结果只是数组(文本数组),请帮我获取所有值,谢谢!

【问题讨论】:

在控制器中打印 $_POST 并检查即将发生的事情.. 消息:数组到字符串的转换文件名:controllers/apps.php 行号:408 结果是数组(文本数组) 第408行是查询还是addlashes()行?? 【参考方案1】:

您想将一个数组插入到数据库中,因此最好在插入时使用json_encode(),在检索时使用json_decode()。你可以这样做

$co_auditor_nips['co_auditor_nip'] = json_encode($this->input->post('co_auditor_nip'));

或者你可以在检索时使用implode()' while inserting andexplode()`,像这样,

$co_auditor_nips['co_auditor_nip'] = implode(",",$this->input->post('co_auditor_nip'));

explode数据库中的值,你可以这样做

$str = "value from database which is in comma-separated format";
print_r (explode(",",$str));

【讨论】:

还是不行,我想在一个字段上插入用逗号分隔的所有值 那你应该用implode(),我会改成implode()的答案 检查是否对您有帮助。 我有这样的错误消息消息:内爆():传递的参数无效文件名:controllers/apps.php 行号:328 打印post值并检查你是否得到一个数组,因为如果值不是一个数组,你会得到错误。

以上是关于将选择多个表单中的值添加到 mysql的主要内容,如果未能解决你的问题,请参考以下文章

将表单选择中的多个属性设置为状态

防止多个选择相同的值

我正在尝试将复杂复选框表单的值存储在 mysql 数据库中

多个单选按钮选择

如何从下拉列表中选择多个项目并将多个值插入 MYSQL

如何将相同的值添加到一行中的多个列表中?