Главная/Статьи/Выборка определённых полей из БД Drupal
Drupal

Выборка определённых полей из БД Drupal

Запросы к базе данных в 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.