Как писать сложные запросы к БД?

Главные вкладки

Аватар пользователя vic vic 21 апреля 2011 в 9:27

Доброго всем дня!

Прочитал много доков, книг, но что то не нашел сложных примеров запросов к БД.

В друпал 7 новые возможности работы с БД и Field API.
Хотелось бы увидеть примеры подобных запросов:

1) Получение материалов определенного типа с одним определенным полем
2) Получение материалов определенного типа со всеми доступными полями
...

Примеров может быть много.
Пробовал писать - получается, но запросы получаются громоздкими.
Мне кажется что должны быть функции, которые позволили бы легко формировать вышеуказанные запросы.
Вот только примеров я найти не смог.

Комментарии

Аватар пользователя vic vic 21 апреля 2011 в 13:04

"xxandeadxx" wrote:
и часто вам приходится загружать по 1000 сущностей за раз?)

тоже верно!
Ладно, да поможет нам кеширование!

"RxB" wrote:
А двойных кавычки в 7 раз медленнее чем одинарные.

извиняю

Аватар пользователя vic vic 21 апреля 2011 в 14:57

Вот типичный сцанарий построения запроса

$result = $query
->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'recipe')
->propertyCondition('status', 1)
->propertyCondition('uid', $account->uid)
->execute();
//print_r($result);

if (!empty($result['node'])) {
$nodes = entity_load('node', array_keys($result['node']));
foreach ($nodes as $node) {
$node->status = 1;
node_save($node);
}
}

А обязательно дополнительно загружать каждую ноду entity_load ?
Разве нельзя, чтобы в $result получить нужные мне поля?