Помощник
|
Код вывода случайных новотей, помогите дописатб... |
Banderas
|
Сообщение
#1
|
||
|
|
||
|
|||
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
|
Сообщение
#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
|
Сообщение
#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 |
9.5.2009, 0:29;
Ответить: ZiTosS
Сообщение
#5
|
|
Banderas, запрос будет вида
SELECT * FROM `table` ORDER BY RAND() LIMIT 6 Выбрать 6 записей из таблицы table отсортированных в рандомном порядке. Это значит, что у тебя к примеру в базе есть 1000 записей, данный запрос просто случайным образом их отсортирует и заберёт только первые 6. |
|
|
Banderas
|
Сообщение
#6
|
|
нет, мне надо определённые. А именно 623, 612, 611, 608, 607, 605. Может сделать типа такого?
$id = array(623, 612, 611, 608, 607, 605);
$bd = query (SELECT * FROM `table` $id) |
|
|
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})");
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
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 |
Текстовая версия | Сейчас: 23.4.2024, 11:12 |