将选择多个表单中的值添加到 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 and
explode()`,像这样,
$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的主要内容,如果未能解决你的问题,请参考以下文章