Я пытаюсь так, но не могу понять в чем ошибка.
<?php
$result= db_select('node', 'n');
$result->innerJoin('taxonomy_index','t','n.nid = t.nid');
$result->fields('n', array('nid', 'title'));
$result->fields('t',Array('tid'));
$result->condition('t.tid','315','=');
//$result->range(0, 10);
$result->execute();
foreach (
$result as $node) {
$items[] = array($node->nid, $node->title, $node->tid);
}
$header = array('ID', 'title','tid');
$output = theme('table', array('header' => $header, 'rows' => $items));
echo $output;
?>
Комментарии
Вы fetch забыли: https://www.drupal.org/docs/7/api/database-api/result-sets
<?php $query = db_select('node', 'n');
$query->innerJoin('taxonomy_index', 't', 'n.nid = t.nid');
$query->fields('n', array('nid', 'title'));
$query->fields('t', array('tid'));
$query->condition('t.tid', '315', '=');
$result = $query->execute()->fetchAll();
foreach ($result as $node) {
$items[] = array($node->nid, $node->title, $node->tid);
}
$header = array('ID', 'title','tid');
$output = theme('table', array('header' => $header, 'rows' => $items));
echo $output;?>
Добрый день, Виктория.
Извините за беспокойство, спрошу еще раз.
Мне по-прежнему требуется получить ноды с определенными терминами таксономии, только терминов сразу два одновременно. Что-то вроде этого: (термин1 or термин2) and термин3.
<?php
$query = db_select('node', 'n');
$query->innerJoin('taxonomy_index','t','n.nid = t.nid');
$query->fields('n',Array('nid','title'));
$query->fields('t',Array('tid'));
$db_and1 = db_and()
->condition('t.tid','323','=')
->condition('t.tid','313','=');
$db_and2 = db_and()
->condition('t.tid','349','=')
->condition('t.tid','313','=');
$db_or = db_or()
->condition($db_and1)
->condition($db_and2);
$query->condition($db_or);
$result = $query->execute()->fetchAll();
?>
Только результат пустой, хотя ноды с терминами 313 и 323 точно есть
Разобрался, вопрос снимается