Lab / Drupal

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

В этой заметке я покажу как сделать выборку только нужных полей из общей таблицы базы данных Собственно код:

$select = db_select ('booking_system');
$select->fields('booking_system', array('bid','object_id','username','persons','lang','phone','email','checkin','checkout','downpayment','total'));

Далее привожу пример выборки всех полей таблицы:

$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'];
}

Вообще выборки в Друпале очень длинная и занимательная тема, вы можете делать выборки из таблиц, полей, по связанным таблицам как в случае с выборкой нод, группировать, сортировать итд. Далее я приведу некоторые часто используеммые мной параметры и методы.

$query->fields('n') // Выбрать всё, аналог SELECT *
$query->distinct() // Удаление дублей
$query->orderRandom(); // Рандомны порядок выборки
$query->orderBy('title', 'DESC'); // Сортировака по полу в обратном порядке
$query->groupBy('uid'); // Группировка по полю
$query->range(2, 11); // LIMIT и OFSET первый параметр сколько записей пропустить, второй сколько показать.