проблема с где в codeIgniter - PullRequest
0 голосов
/ 02 августа 2011

если использовать этот код, покажи мне все данные, все имена и все идентификаторы.что мне делать?
я использую codeIgniter

с уважением

$search_customer = 1;//$this->input->post('search_customer');
$where = "id=$search_customer OR name=$search_customer";
$query = $this->db->get('customer');
$this->db->where('id', $search_customer);
$this->db->or_where('name', $search_customer);
if($query->num_rows()==0){
            echo '0';
        }else{
            $data = array();
            foreach ($query->result() as $row)
            {
               $data[] = $row;
            }
            echo json_encode($data);
        }

Ответы [ 3 ]

1 голос
/ 02 августа 2011

Похоже, что ошибка говорит вам. У вас нет столбца в вашей базе данных с именем 'id = 1'

Попробуйте использовать массив

$array = array('id'=>$search_customer);
$this->db->get_where('customers', $array);

http://codeigniter.com/user_guide/database/active_record.html#select

Есть также or_where доступно:

$this->db->or_where('name', $search_customer);
1 голос
/ 02 августа 2011

Попробуйте это для условий:

$this->db->where('id', $search_customer);
$this->db->or_where('name', $search_customer);

Вы можете видеть на документах , что при использовании get_where вы используете ассоциативный массив.

0 голосов
/ 02 августа 2011

В этой строке выполняется запрос:

$query = $this->db->get('customer');

до того, как вы задали предложения where.Вы, вероятно, хотите

$this->db->where('id', $search_customer);
$this->db->or_where('name', $search_customer);
$query = $this->db->get('customer');

Если у вас все еще есть проблемы, взгляните на SQL, который генерируется / запускается:

echo $this->db->last_query();
...