Многократная вставка в Codeigniter - PullRequest
0 голосов
/ 10 марта 2019

Дорогие друзья, прежде всего я вставляю свой код, затем опишу свою проблему. Пожалуйста помоги. VIEW

<?php echo form_open('my_index'); ?>
<label>Person1 </label><input type="text" name="input[]"><br><br>
<label>Person2 </label><input type="text" name="input[]"><br><br>
<label>Person3 </label><input type="text" name="input[]"><br><br>
<label>Person4 </label><input type="text" name="input[]"><br><br>
<button type="submit">Test</button>
<?php echo form_close(); ?>

CONTROLLER

     public function my_index()
{
    $this->load->model('search/searchmodel');
    $r=$this->input->post('input');

    $this->searchmodel->myinsert($r);
}

MODEL

   public function myinsert($s){
$i=0;
foreach($s as $r){

    $this->db->insert('customer_order',array('customerName' => $r[$i]));
$i++;
}

}

Моя проблема заключается в том, что я запускаю код и ввожу данные в текстовое поле следующим образом: Person1 = Jhon; Person2 = Филипп; Person2 = Марк; Person4 = Джек. Он вставляется (в четыре строки, что я хочу), но следующим образом: J, H, R, K. Пока я хочу вставить его как Джон, Филлип, Марк, Джек (в четыре ряда).

Я не знаю, в чем ошибка. Пожалуйста, кто-нибудь, помогите мне. Спасибо.

Ответы [ 2 ]

0 голосов
/ 10 марта 2019

В вашей модели

Вы должны использовать пакетная вставка $this->db->insert_batch() вместо $this->db->insert().

public function myinsert($s){
  $data = [];

  $i=0;
  foreach($s as $r){
    $data[$i]['customerName'] = $r;
    $i++;
  }

  $this->db->insert_batch('customer_order', $data);

}

Здесь. Прочитайте документацию для пакетной вставки

0 голосов
/ 10 марта 2019

Ваша модель работает неправильно.Попробуйте ниже, вам не нужно использовать $r[$i].

public function myinsert($s){
  foreach($s as $r){    
    $this->db->insert('customer_order',array('customerName' => $r));
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...