ВопросВывод произвольных полей из БД в форму Database api

Всем добрый день!

Вывод полей из БД производится так: в моем случае загружается в select

function input_more_form_get_list() {
  $query_option = array();
  $results = db_select('node', 'n')
			->condition('type', 'MOITYPE')
			->fields('n')
			->fields(array(
			'nid' => $nid,
			'title'=> $title,
			'num'=> $num))
			->condition('n.title','','<>')
			->execute();
  foreach ($results as $option) {
  $query_option[$option->nid] = $option->num;
}
 
return $query_option;
}

Вопрос: как вывести поля созданные ? то есть в моем случае ПОЛЕ-FIELD_NUM
Гугле копался но без результатов, подскажите где копать?

Комментарии

Аватар пользователя Spleshka
Spleshka написал:

Ваш запрос к базе данных нерабочий, но я отвечу на ваш вопрос:

$field = db_select('field_data_field_num', 'fn')
  ->fields('fn', array('field_num_value'))
  ->condition('fn.entity_id', $node->nid)
  ->execute()
  ->fetchField();

Ну это в общем случае. А вообще почитайте про работу с полями в Drupal 7.

01.05.2012 16:22
Аватар пользователя Serik Yeleussizov
Serik Yeleussizov написал:

Добрый день Евгений!
Вчера разбирал ваш вариант, прочитал про Entity metadata wrappers и EntityFieldQuery. Понравился запрос с помощью EntityFieldQuery. Он намного быстрее по скорости оказывается.
Обьясню мою задачу:

  1. При выборе из selecta данные загруженные из базы данных поле(термины таксономии)
  2. загружался рядом сооветствующие поля которому относятся этот термин. Я бы сказал несколько полей.
  3. при выборе из select другое значение соответсвенно загружались другие данные из полей

Вопрос:

  1. Как лучше это организовать, дайте мне источник)
  2. где у меня ошибка этот код выдает мне.

Позже выложу вариант с EntityFieldQuery. спасибо. Жду ответа.

function input_more_form_get_list() {
  $query_option = array();
  $field = db_select('field_data_field_num', 'fn')
  ->fields('fn', array('field_num_value'))
  ->condition('fn.language', $node->lang)
  ->condition('fn.entity_id', $node->nid)
  ->execute()
  ->fetchField();
$field_values = field_get_items('kvart', $kvart, 'field_data_field_num');
foreach ($field_values as $option) {
  $query_option[$option['nid']] = $option['value'];
}
 
return $query_option;
}
02.05.2012 10:00
Аватар пользователя Serik Yeleussizov
Serik Yeleussizov написал:

Вот собственно код EntityFieldQuery

function input_more_form_get_list() {
$query_option = array ();
 $taxonomyQuery = new EntityFieldQuery(); 
  $taxonomyTerms = $taxonomyQuery->entityCondition('entity_type', 'taxonomy_term') 
    ->propertyCondition('vid', 1) //ID таксономии
    ->propertyOrderBy('weight') 
    ->execute(); 
  foreach($taxonomyTerms['taxonomy_term'] as $term) { 
    $query_option[$term->tid] = $term->value; //тут не совсем верно, не могу вывести правильно
  }
  return $query_option;
}
02.05.2012 10:31

Комментировать