2014-08-31 7 views
0

Я использую Laravel DB :: выбрать вернуть определенные данные из БД,Laravel 4: заказ выберите запрос

проблема только одна строка возврата при использовании print_r ($ результат)

$questions = DB::select(' 
      select text 
      from question 
      where id in (?) 
      order by field(id,?)', 
      array($question_ids_list_str,$question_ids_list_str)); 


    print_r($questions); 

как вернуть остальные результаты? спасибо,

+0

Там нет 'остальные results', по-видимому. Этот метод возвращает массив stdObjects, представляющий каждую строку. Кстати, почему вы используете это вместо построения запросов, что проще в использовании? –

+0

Вы должны убедиться, что содержит '$ question_ids_list_str'. Если он содержит только один идентификатор или один существующий идентификатор в базе данных, select не вернет больше строк –

+0

@ MarcinNabiałek $ question_ids_list_str содержит список идентификаторов, проверенных – mwafi

ответ

0

Попробуйте это:

$questions = DB::select(' 
     select text 
     from question 
     where id in (?) 
     order by field(id,?)', 
     array($question_ids_list_str,$question_ids_list_str)); 
foreach($questions as $question) { 
    echo $question; 
} 
2

Вы можете попробовать что-то вроде этого:

$ids = array(1, 2, 3); // Pass the ids in whereIn clause 
$questions = DB::table('question') 
       ->whereIn('id', $ids) 
       ->orderBy('id') 
       ->get(array('text')); // Only get text field 
+0

это работает нормально, но что не так в DB :: select, заставить его получить только 1 строку? – mwafi

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