2013-12-09 3 views
0
public function func1() 
{ 
    $this->func(); 
    $result1 = $this->result; 

    foreach ($result1 as $row) { 
     $this->load->model('test_model'); 
     $this->db->select('name'); 
     $this->db->from('place'); 

     $string = ''; 

     $string = $row[state_name]; 

     $this->db->where('state'=,"$string"); 
     $query = $this->db->get(); 

     return $query->result_array(); 
    } 

} 

где $this->func(); получает массив, содержащий массив строк имен, и я использую каждое значение в качестве условия в where пункте в func1(select). Я использую foreach цикл, чтобы получить каждую строку из результирующего набора из func и позже я пытаюсь выбрать имя из согласованного где положение в func1, но я получаю ошибку нижеCodeigniter: стоимость получения добавляется из массива

A Database Error Occurred 
    Error Number: 1064 
    SELECT `name` FROM (`place`) WHERE `state=` 'place1,place2, place3,place4'; 

все значения от foreach добавляется к одному и тому же запросу, где в моем случае каждая итерация должна извлекать только одно значение и выполнять запрос SELECT и возвращать результат.

+1

'$ this-> db-> где ('состояние' = "$ строка");' является то, что опечатка? поскольку '=' находится за пределами '' state''. Существует также опечатка здесь '$ string = $ row [state_name];' если 'state_name' не является константой? – SamV

+0

'$ this-> db-> где ('state'," $ string ");' remove '=' – Noor

+0

Кроме того, я предполагаю, что $ this-> func не возвращает массив значений, а все добавленные значения , проверьте ваш func(), чтобы узнать, что он возвращает, и исправьте свое утверждение, упомянутое Noor – user2844810

ответ

1

Не могли бы вы попробовать это:

public function func1() 
{ 
    $this->func(); 
    $result1 = $this->result; 

    $data = null; $i=0; 
    foreach ($result1 as $row) { 
     $this->load->model('test_model'); 
     $this->db->select('name'); 
     $this->db->from('place'); 

     $string = ''; 

     $string = $row['state_name']; 

     $this->db->where('state'=,"$string"); 
     $query = $this->db->get(); 

     $query->result_array(); 
     $data[$i] = $query->result_array; 
    } 
    return $data; 

} 
+1

Спасибо, что он работает сейчас. – user3066566

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