Для облегчения генерации таблиц, в 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
Похожие записи
Комментарии
Как запретить сортировку, например по 'Nid', в данном случае.
убрать order by из запроса
При этом нужно оставить сортировку по 'Title'
пропишите title вместо nid
точно, тоже выход, попробовал работает сортировка только по указ. столбцам.
->orderByHeader($header[1])
тоже работает, но только по этому столбцу
А существует такой же способ для вывода массива с пагинацией?
Интересно, почему может не работать нижний пример (для Д7)?
Я скопировал его целиком в блок, формат PHP Code.
И ничего не отображается на странице.
http://php.net/manual/ru/function.echo.php
http://php.net/manual/ru/tutorial.php
Добавить комментарий