Вывод в блоке определенного контента из базы данных sql.
Posted октябрь 31st, 2007 by admin
.:
Блока на примере вывод данных из новостной ленты.
:
Создаёте блок
В настройках указываете показывать везде кроме admin/* --в админке он вам не нужен
Вставляете следующий код (указав фильтр ввода - php):
<?php // Лимит вывода статей на странице $limit = 30;
// Выбранный типы материала $type = 'page';
// тут будем всё хранить $output = '';
// Формируем запрос к базе // иперемешиваем занчения $query = " SELECT node_revisions.nid, node_revisions.title, " . "node_revisions.teaser, users.name, node_type.name " . "AS typename FROM node_revisions, node, users, node_type " . "WHERE (node_revisions.nid = node.nid) " . "AND (node.status = 1)" . "AND (node.uid = users.uid)" . "AND (node_type.type = node.type) AND (node_type.type ='%s') ORDER BY RAND() LIMIT %d"; // Спрашиваем у БД то, что сформировали $result = db_query($query, $type, $limit);
// Проходимся циклом по результату // На каждую найденную строку формируем строку вывода и прибавляем её к общему результату ($output) while ($arr = db_fetch_array($result)) {
// Освобождаем память от переменной $result mysql_free_result($result);
print $output;
?>
лучше добавить возможность кэширования в данный скрипт:
<?php // Проверяем, существует ли кеш если существует, выводим его // Если не существует создаём // my_cache -- название придумманое для кеша // $block['content'] в функции кеширования заменить на собствевенно сам контент // 10 --Время кеширования в минутах