Drupal → Вывод простой таблицы с данными из БД

30.05.2010

Для облегчения генерации таблиц, в Drupal есть специальная theme функция theme_table, которая на вход получает массивы с заголовками и данными, а на выходе возвращает html код таблицы.

Пример вывода таблицы со списком нод, которая содержит две колонки — номер ноды и заголовок:

Drupal 6:

$nodes = db_query("SELECT nid, title FROM {node} ORDER BY nid");
$header = array('Nid', 'Title');
$rows = array();

while ($node = db_fetch_object($nodes)) {
  $rows[] = array($node->nid, $node->title);
}

$output = theme('table', $header, $rows);

Drupal 7:

$nodes = db_select('node', 'n')->fields('n', array('nid', 'title'))->orderBy('n.nid')->execute();
$header = array('Nid', 'Title');
$rows = array();

foreach ($nodes as $node) {
  $rows[] = array($node->nid, $node->title);
}

$output = theme('table', array('header' => $header, 'rows' => $rows));

Похожая статья: Вывод html таблицы с данными из бд, сортировкой и пагинацией.

Написанное актуально для
Drupal 6, Drupal 7
Похожие записи

Комментарии

Владимир
16.01.2012, 13:02

Как запретить сортировку, например по 'Nid', в данном случае.

Владимир
16.01.2012, 13:09

При этом нужно оставить сортировку по 'Title'

Владимир
16.01.2012, 13:20

точно, тоже выход, попробовал работает сортировка только по указ. столбцам.
->orderByHeader($header[1])
тоже работает, но только по этому столбцу

А существует такой же способ для вывода массива с пагинацией?

Гость
19.12.2017, 16:03

Интересно, почему может не работать нижний пример (для Д7)?
Я скопировал его целиком в блок, формат PHP Code.
И ничего не отображается на странице.

Добавить комментарий