2013-02-20 3 views
0

Привет быстрый вопрос для вас, ребята/девочкиВставка массив ключей пара значений в базе данных MySQL к

У меня есть JavaScript Object, который показывает, как следует в консоли.

Object { 10= "[email protected]", 18="[email protected]", 20="[email protected]"} 

Передача этого объекта к бэкенду CI контроллеру через AJAX я создал следующую функцию с 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] => [email protected] [18] => [email protected] [20] => [email protected]) 

Я хотел бы, чтобы подтолкнуть каждый элемент и значение в новую строку следующим образом.

EMAIL_TABLE

| id | cus_id | email | 
| 1 | 10  | [email protected] | 
| 2 | 18  | [email protected] | 
| 3 | 20  | [email protected] | 

Где 'ID' будет автоматически увеличивается на единицу, как никогда 'cus_id' и 'электронная почта' считываются и сохраняются из массива.

Любая помощь или помощь, которые помогут мне решить эту проблему, будем очень благодарны!

Благодарим за внимание, С уважением.

ответ

0

Установите идентификатор в качестве столбца первичного ключа 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); 
} 
+0

Я понимаю, что он увеличивает само по себе, и это не то, что я прошу в этом вопросе. Спасибо, что ответили. – BaconJuice

+0

Ах, вы ищете PHP-код для этого. Подождите, я отредактирую это в свой ответ. – DiMono

+0

Там мы идем. Фактически вы можете назначить как ключ, так и значение для переменных в цикле foreach. – DiMono

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); 
} 
Смежные вопросы