2015-02-10 7 views
1

Я действительно искал довольно много времени, но я не знаю, что менять. Мой php-код получает массив, и я хочу, чтобы он вставлялся в mysqlDB. Проблема в том, что он запускает цикл foreach только один раз. Почему он не работает?php - Почему foreach работает только один раз?

public function insert_tags($projektID, $tags) { 
    print_r($tags); 
    foreach($tags as $tag) 
     $this->db->set('name', $tag); 
     $this->db->insert('tags'); 
     echo $tag; 
     $tag_ID = $this->db->insert_id(); 
     echo $tag_ID; 
     if ($tag_ID != 0) { 
      $this->db->set('id', $projektID); 
      $this->db->set('tag_ID', $tag_ID); 
      $this->db->insert('hat_tags'); 
     } 
} 

Он вторит:

Array 
(
    [0] => tag1 
    [1] => tag2 
) 
tag2 147 

Никаких дополнительных ошибок. Спасибо за любую помощь!

ответ

2

Вы должны вложить их в {} скобках в противном случае это будет цикл первой линии рядом с ним. Используйте приведенный ниже код

public function insert_tags($projektID, $tags) { 
    print_r($tags); 
    foreach($tags as $tag){ 
     $this->db->set('name', $tag); 
     $this->db->insert('tags'); 
     echo $tag; 
     $tag_ID = $this->db->insert_id(); 
     echo $tag_ID; 
     if ($tag_ID != 0) { 
      $this->db->set('id', $projektID); 
      $this->db->set('tag_ID', $tag_ID); 
      $this->db->insert('hat_tags'); 
     } 
    } 

} 

Или вы можете использовать его с endforeach

public function insert_tags($projektID, $tags) { 
    print_r($tags); 
    foreach($tags as $tag): 
     $this->db->set('name', $tag); 
     $this->db->insert('tags'); 
     echo $tag; 
     $tag_ID = $this->db->insert_id(); 
     echo $tag_ID; 
     if ($tag_ID != 0) { 
      $this->db->set('id', $projektID); 
      $this->db->set('tag_ID', $tag_ID); 
      $this->db->insert('hat_tags'); 
     } 
    endforeach; 

} 

Надеется, что это помогает вам

4

Еогеасп петля должна быть заключена в фигурные скобки {} иначе это будет цикл только одна строка после Еогеасп заявления

+2

это не распространяется должно быть заключены в фигурных скобках на самом деле, вы можете использовать альтернативный синтаксис, как : 'foreach(): endforeach;' – Daan

Смежные вопросы