X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Код вывода случайных новотей, помогите дописатб...
Banderas
Banderas
Topic Starter сообщение 18.4.2009, 14:38; Ответить: Banderas
Сообщение #1


Помогите переделать скрипт вывода случайных новостей =) Вот часть кода:

$lastnewsconf['news'] = 200; // Длина новости
$lastnewsconf['link'] = 30; // Обрезание титла новостей
$lastnewsconf['limit'] = 2; // Количество новостей
$lastnewsconf['hide_html'] = true;// Уберать все теги из текста новости (true - да, false - нет)
$lastnewsconf['only_hide_main'] = true;// Показывать только новости не опубликованые на главной (true - да, false - нет)
$lastnewsconf['category'] = ''; // Показывать категории, перечислите ID категорий через запятую без пробелов. Если нужно показвать все оставте поле пустым

$lastnews = dle_cache("randnews", $config['skin']);  //кешируем вывод

if (!$lastnews) {
//include(ENGINE_DIR.'/inc/parse.class.php'); //подключаем парсер
//$parse = new ParseFilter(Array(), Array());

if ($lastnewsconf['only_hide_main']) //нужно ли  Показывать только новости не опубликованые на главной
   $ln_allow_main = 'and allow_main=0';
else
   $ln_allow_main = '';

if ($lastnewsconf['category'])
   $ln_category = 'and category = '. str_replace(',',' or ', $lastnewsconf['category']);
else
   $ln_category = '';
$tpl->load_template('randnews.tpl'); //грузим шаблон
  
//меняем наш запрос и добавляем к нему рандомную функцию вывода из бд
     $sql_result = $db->query ("SELECT *  FROM ". PREFIX . "_post WHERE approve='1' $ln_allow_main $ln_category ORDER BY rand()   LIMIT {$lastnewsconf['limit']}"); //rand() отвечает за случайный вывод
while ( $row = $db->get_row ( $sql_result )) //выводим результат


Мне надо что бы выводило новости со всех категорий, кроме определённых, например кроме: 33,32,34,38,41. Как это сделать? У меня DLE 7.0
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.4.2009, 19:06; Ответить: ZiTosS
Сообщение #2


$lastnewsconf['news'] = 200; // Длина новости
$lastnewsconf['link'] = 30; // Обрезание титла новостей
$lastnewsconf['limit'] = 2; // Количество новостей
$lastnewsconf['hide_html'] = true;// Уберать все теги из текста новости (true - да, false - нет)
$lastnewsconf['only_hide_main'] = true;// Показывать только новости не опубликованые на главной (true - да, false - нет)
$lastnewsconf['category'] = array(); // Не показывать категории, перечислите ID категорий в массиве. Если хотите выводить из всех категорий, оставьте массив пустым.

$lastnews = dle_cache("randnews", $config['skin']);  //кешируем вывод

if (!$lastnews) {
//include(ENGINE_DIR.'/inc/parse.class.php'); //подключаем парсер
//$parse = new ParseFilter(Array(), Array());

if ($lastnewsconf['only_hide_main']) //нужно ли  Показывать только новости не опубликованые на главной
   $ln_allow_main = 'and allow_main=0';
else
   $ln_allow_main = '';

if (isset($lastnewsconf['category']) && count($lastnewsconf['category']) > 0)
   $ln_category = "AND category NOT in(".implode(",", $lastnewsconf['category']);
else
   $ln_category = '';
   $tpl->load_template('randnews.tpl'); //грузим шаблон
  
//меняем наш запрос и добавляем к нему рандомную функцию вывода из бд
     $sql_result = $db->query ("SELECT *  FROM ". PREFIX . "_post WHERE approve='1' {$ln_allow_main} {$ln_category} ORDER BY rand()   LIMIT {$lastnewsconf['limit']}"); //rand() отвечает за случайный вывод
while ( $row = $db->get_row ( $sql_result )) //выводим результат

Я изменил всего пару строчек:
$lastnewsconf['category'] = array(); // Не показывать категории, перечислите ID категорий в массиве. Если хотите выводить из всех категорий, оставьте массив пустым.

и
if (isset($lastnewsconf['category']) && count($lastnewsconf['category']) > 0)
   $ln_category = "AND category NOT in(".implode(",", $lastnewsconf['category']);
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 21.4.2009, 17:01; Ответить: Banderas
Сообщение #3


Если код будет выглядеть так, то статьи из категорий 33,32,34,38,41 не будут выводиться на сайте?
....
$lastnewsconf['category'] = array(33,32,34,38,41); // Не показывать категории, перечислите ID категорий в массиве. Если хотите выводить из всех категорий, оставьте массив пустым.
....
if (isset($lastnewsconf['category']) && count($lastnewsconf['category']) > 0) // если $lastnewsconf['category'] существует и число $lastnewsconf['category'] больше за 0, то что дальше?
   $ln_category = "AND category NOT in(".implode(",", $lastnewsconf['category']);
else
   $ln_category = '';
   $tpl->load_template('randnews.tpl'); //грузим шаблон
.....


Ещё вопрос к этой строчке:
if (isset($lastnewsconf['category']) && count($lastnewsconf['category']) > 0) // если $lastnewsconf['category'] существует и число $lastnewsconf['category'] больше за 0, то что дальше?

???
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 8.5.2009, 22:31; Ответить: Banderas
Сообщение #4


Хочу сделать рандомный вывод новостей. Точнее вот такое: есть новости с ID допустим 6, 8, 3, 4. Хочу сделать скрипт для вывода одной рандомной новости. С БД пока не работал, но думаю что скрипт очень даже легкий, и будет работать примерно так:
1) делает запрос в БД за новостями, типа
$bd = query (взять с той-то категории, краткие новости, с ИД: 6,8,3,4 );

2) С масива с этими новостями выбирает рандомно 1 из них
$bd = array(6,8,3,4);
$r_new = $bd Rand();

3) выводит одну выбранную на сайте
echo "$r_new"


Написал куча бреда, звиняйте(((
Самое сложное пока это сделать правильно запрос. Может кто наведет примеры как делают запрос в ДЛЕ или как сделать запрос к категории, или что указывать в запросе?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 9.5.2009, 0:29; Ответить: ZiTosS
Сообщение #5


Banderas, запрос будет вида
SELECT * FROM `table` ORDER BY RAND() LIMIT 6

Выбрать 6 записей из таблицы table отсортированных в рандомном порядке.

Это значит, что у тебя к примеру в базе есть 1000 записей, данный запрос просто случайным образом их отсортирует и заберёт только первые 6.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
Topic Starter сообщение 9.5.2009, 10:03; Ответить: Banderas
Сообщение #6


нет, мне надо определённые. А именно 623, 612, 611, 608, 607, 605. Может сделать типа такого?
$id = array(623, 612, 611, 608, 607, 605);
$bd = query (SELECT * FROM `table` $id)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 10.5.2009, 15:40; Ответить: ZiTosS
Сообщение #7


Тогда уж так:
$id = array(623, 612, 611, 608, 607, 605); // есть массив
$id = implode(',', $id); // сливаем всё в одну строку через запятую.
$bd = query ("SELECT * FROM `table` id IN({$id})");


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Superobmen.biz - сервис ручного ввода и вывода Приват24 (грн) <--> WM, ЯД, QIWI
удобство, низкие комиссии, скидки постоянным клиентам!
52 Sostavitel 38718 10.2.2023, 1:04
автор: Sostavitel
Открытая тема (нет новых ответов) Сервис ввода, вывода электронных денег | Tochkaobmena.com
Сервис ввода, вывода электронных денег
11 tochkaobmena 6507 1.2.2021, 12:33
автор: tochkaobmena
Открытая тема (нет новых ответов) Почистить код на сайте
1 Timka 1108 2.1.2021, 1:13
автор: 0pium
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыВы мне код, я вам как - делать не надо.
0 fedornabilkin 959 18.9.2020, 18:59
автор: fedornabilkin
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыAdobe muse: Не могу разместить нужный мне код сразу после Body
0 Evg82 3833 20.6.2020, 10:24
автор: Evg82


 



RSS Текстовая версия Сейчас: 23.4.2024, 11:12
Дизайн