2015-07-17 3 views
0

Я использую CodeIgniter и вызов данных из таблицы -Mysql не возвращает запрос на выборку по конкретному номеру

$this->connection->select('*'); 
    $this->connection->from($this->database); 

    if(is_numeric($item)) 
    { 
     $this->connection->where('id',$item); 
    } 
    else 
    { 
     $this->connection->or_like('name',$item); 
    } 

    $this->connection->limit(50, 0); 

    $query = $this->connection->get(); 

    die(print_r($query->result_array())." die"); 

Когда входной пункт как любой идентификатор, который доступен в базе данных он правильно возвращает массив. Но когда я использую 4147 (который также присутствует в базе данных, он не печатает его.). Также при использовании $ item в качестве строки он не возвращает некоторые слова, которые содержатся в поле «имя».

+0

Update - Журнал ошибок показывает результаты, по-видимому $ query-> result_array() не будет содержать значения в массиве, или вернуть или печать в обычном режиме с print_r по тем или иным причинам. Любые мысли, пожалуйста? – SagunKho

ответ

0

Вы используете or_like() неправильно, так как у него нет инструкции 1-готого. ваш код создает что-то вроде: SELECT * FROM table WHERE OR name LIKE '%abc%', что приводит к ошибке.

правильный способ заключается в использовании:

else 
{ 
    $this->connection->like('name',$item); 
    // now you can start using or 
    $this->connection->or_like('address',$anotheritem); 

} 
+0

Привет, я не зарегистрировал вывод через error_log, который показывает - 'имя LIKE '% apple%'', OR добавляется только, если вы делаете второй вызов с помощью or_like. Это возвращение было успешным. но с такими словами, как «меч» и т. д. нет выхода ... несмотря на то, что в db есть много строк, содержащих такие. – SagunKho

+0

попробуйте $ this-> connection-> like ('name', ''. $ Item. ''); – Vickel

+0

Спасибо, но никаких изменений в результате ... Я на OSX yosemite, если это имеет значение, просто подумал, что я бы упомянул. – SagunKho

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

  • Нет связанных вопросов^_^