Перейти к публикации

Рекомендованные сообщения

подскажите как в модуле случайная новость выбрать именно только ту категорию которую хочу...

random_news.php

<?php

/*=====================================================

Случайная новость

=====================================================

Данный код защищен авторскими правами

ICQ: 271522951

email: kandriy2004@ukr.net

=====================================================

Файл: random_news.php

----------------------------------------------------------

Назначение: Вывод случайных 3 новости одним блоком

=====================================================*/

if(!is_numeric($title_length)) $title_length = 30;

if(!is_numeric($short_story_length)) $short_story_length = 50;

if(!is_numeric($img_maxsize)) $img_maxsize = 80;

$o_block = '<table cellSpacing=0 cellPadding=0 width="100%" border="0"><tr>';

$rr = $db->query('SELECT id, date, title, short_story, SUBSTRING_INDEX(category,",",1) as category, alt_name, flag FROM '.PREFIX .'_post where approve="1" ORDER by RAND() LIMIT 0,3');

while ($row = $db->get_row($rr))

{

$ttl = stripslashes($row['title']);

$title_short = substr($ttl, 0, $title_length).'';

$s_story = strip_tags($row['short_story']); $s_story = substr($s_story, 0, $short_story_length).'';

preg_match('|<img(.*) src="([^"]*)"[^>]*>|is', $row['short_story'], $ps);

if($ps[2])

{

$img_parts = pathinfo($ps[2]);

$img_link = $img_parts['dirname'].'/'.$img_parts['basename'];

$img_info = @getimagesize($img_link);

$img_width = $img_info[0];

$img_height = $img_info[1];

if ($img_width > $img_height)

{

$img_code = '<a href="'.$full_link.'"><IMG src="'.$img_link.'" alt="'.$ttl.'" width="'.$img_maxsize.'"/></a>';

} else $img_code = '<a href="'.$full_link.'"><IMG src="'.$img_link.'" alt="'.$ttl.'" height="'.$img_maxsize.'"/></a>';

}

else { $img_code ='<div align="center" class="random_news_news">- </div>';};

$full_link = $config['http_home_url'].get_url($row['category'])."/".$row['id']."-".$row['alt_name'].".html";

$o_block .= '

<td width="33%" valign="top">

<table cellSpacing=0 cellPadding=0 width="100%" height="100%" border="0">

<tr >

<td class = "random_news_img" rowspan="2">

'.$img_code.'

</td>

<td class = "random_news_title">

<a href="'.$full_link.'">'.$title_short.'</a>

</td>

</tr>

<tr>

<td class = "random_news_news" >

'.$s_story.'

</td>

</tr>

</table>

</td>';

};

$o_block .= '

</tr>

</table>';

echo '<DIV>'.$o_block.'</DIV>';

?>

Ссылка на сообщение
Поделиться на других сайтах


$rr = $db->query('SELECT id, date, title, short_story, SUBSTRING_INDEX(category,",",1) as category, alt_name, flag FROM '.PREFIX .'_post where approve="1" ORDER by RAND() LIMIT 0,3');

заменить на:

$rr = $db->query('SELECT id, date, title, short_story, SUBSTRING_INDEX(category,",",1) as category, alt_name, flag FROM '.PREFIX .'_post where approve="1" AND category='120' ORDER by RAND() LIMIT 0,3');

где 120 - id нужной вам категории.

Ссылка на сообщение
Поделиться на других сайтах

Можно несколько id через запятую писать?

Parse error: syntax error, unexpected T_LNUMBER in /engine/modules/random_news.php on line 20

Изменено пользователем Aksakal81
Ссылка на сообщение
Поделиться на других сайтах

Попробуйте так, вместо: AND category='120' написать:

&& (category='120' || category='121')

Ссылка на сообщение
Поделиться на других сайтах

Не показывает... Это может быть из за того что я название файла поменял с random_news.php на random_news1.php? Но ошибку именно той строчке показывает... и я побывал на главном random_news.php поменять и тоже самое пишит

Ссылка на сообщение
Поделиться на других сайтах

Варианты разные, как можно сделать, попробуйте такой запрос тогда:

$select = 'SELECT id,date,title,short_story,approve,alt_name,flag,SUBSTRING_INDEX(category,",",1) as category';

$from   = 'FROM '.PREFIX.'_post AS p';

$where  = "WHERE p.approve='1' && p.short_story!='' && p.title!='' && p.category IN (1,2,3)";

$sql    = "$select $from $where ORDER by RAND() LIMIT 0,3";

$rr = $db->query($sql);

Давненько не писал запросы в БД, но вроде бы так должно быть, либо: ('1','2','3').

Изменено пользователем zgr
Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

заменить на:


$rr = $db->query('SELECT id, date, title, short_story, SUBSTRING_INDEX(category,",",1) as category, alt_name, flag FROM '.PREFIX .'_post where approve="1" AND category='120' ORDER by RAND() LIMIT 0,3');

где 120 - id нужной вам категории.

Вместо '120' должно быть "120" и наступит счастье.

Изменено пользователем Wanderers
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...