Запросы к базе данных в Drupal — тема обширная и интересная. Они позволяют делать выборки из таблиц, полей, связанных таблиц, с возможностью группировки и сортировки. В этой заметке — как получить только определённые поля из таблицы.
Выборка конкретных полей
Чтобы выбрать только нужные поля из таблицы, передаём их массивом вторым аргументом метода fields():
$select = db_select('booking_system');
$select->fields('booking_system', array(
'bid',
'object_id',
'username',
'persons',
'lang',
'phone',
'email',
'checkin',
'checkout',
'downpayment',
'total'
));
Выборка всех полей
Для получения всех полей таблицы можно использовать fields() без массива — аналог SELECT *. Пример с сортировкой и итерацией результатов:
$result = db_select('shoutbox', NULL, array('fetch' => PDO::FETCH_ASSOC))
->fields('shoutbox')
->orderBy('created', 'DESC')
->execute();
foreach ($result as $value) {
$row[] = $value['nick'];
$row[] = $value['shout'];
}
Метод orderBy() сортирует результаты по указанному полю. Также доступны методы для удаления дублей, случайной сортировки, группировки, а также range() для реализации LIMIT и OFFSET.