你好快速问题你们/ gals
我有一个javascript对象,在控制台中显示如下。
Object { 10= "a@a.com", 18="b@b.com", 20="c@c.com"}
通过AJAX将此对象传递给后端CI控制器我已使用CI创建了以下功能。
function NewEMail(){
//this is the array coming from ajax
$test = $this -> input -> post('sendValue');
print_r($test);
if(is_array($test)){
foreach($test as $t){
//Insert the values in to the db from here.
}
}
}
php对print_r的响应如下
Array([10] => a@a.com [18] => b@b.com [20] => c@c.com)
我想将每个元素和值推送到新行,如下所示。
EMAIL_TABLE
| id | cus_id | email |
| 1 | 10 | a@a.com |
| 2 | 18 | b@b.com |
| 3 | 20 | c@c.com |
'id' 自动递增的位置'cus_id'和'email'被读取并从数组中存储。
非常感谢帮助我解决此问题的任何帮助或指示!
感谢您的阅读, 问候。
答案 0 :(得分:0)
将id设置为表格中的auto_increment主键列。
create table email (
id int unsigned primary key auto_increment,
cus_id int unsigned,
email varchar(50)
);
insert into email (cus_id, email) values ('$cusid', '$email');
然后id将自行处理,您只需在插入时不管它。
PHP代码在循环中执行此操作:
foreach ($test as $cusid => $email) {
$querystring = "insert into users (cus_id, email) values ('$cusid', '$email')";
myqsli_query($querystring);
}
答案 1 :(得分:0)
你可以试试这个:
$test = $this->input->post('sendValue');
if( is_array($test) ){
$data = array();
foreach ($test as $cusid => $email) {
$data[] = array('cus_id' => $cusid, 'email' => $email);
}
$this->db->insert_batch('tablename', data);
}