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

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

доброе время суток.

есть модуль случайных новостей. подключается в main.tpl через {include file="engine/modules/random-news.php"}:

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

<?php

if( ! defined( 'DATALIFEENGINE' ) ) {

die( "Hacking attempt!" );

}

$xf = 'main-img'; /*имя доп. поля*/

$o_block = '<div class="right-r-news-list">';

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

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

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

$xfieldsdata = xfieldsdataload( $row['xfields'] );

if($xfieldsdata[$xf]<>"") $preview = $xfieldsdata[$xf];

else $preview = $noimg;

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

$img_code = '<a href="'.$full_link.'"><img src="'.$preview.'" alt="'.$ttl.'" title="'.$ttl.'"/></a>';

$o_block .= $img_code;

};

$o_block .= '</div>';

echo $o_block;

?>

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

работает вроде нормально.

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

создал такой же файл с именем related-news.php. подключил в fullstory.tpl через {include file="engine/modules/related-news.php"}.

добавил к WHERE запроса 'AND category="$category_id"'. НЕ РАБОТАЕТ. ошибок не выдает. просто не выводится.

убираю изменение в запросе - работает, но выводит естественно из всех категорий.

пинал переменную через 'echo $category_id' - присутствует, корректно выводится. в запросе - ни как.

если кто-то в курсе как поправить - подскажите пожалуйста.

заранее СПАСИБО.

ЗЫ: опять же- если кто-то в курсе опишите плз на сколько сильно такая конструкция повлияет на скорость сайта.

если есть вариант ее оптимизировать - огромное спасибо за описание. может другие варианты есть? с тем же эффектом.

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

интересно - если в запросе вместо $category_id явно прописать id категории в виде цифры - все работает так как нужно.

что с этим можно сделать?

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

mwn21,

Потому что, ваше условие должно брать значение $category_id, а не само $category_id

Попробуйте закрыть его в фигурные скобки.

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

mwn21,

Потому что, ваше условие должно брать значение $category_id, а не само $category_id

Попробуйте закрыть его в фигурные скобки.

можно пожалуйста по-подробней.

на сколько я знаю, если есть переменная $category_id несущая определенное значение (число) - мне ничего не мешает использовать ее (переменную) в запросе. и именно в виде #WHERE ....... AND category="$category_id"#. где при обработке запроса вместо $category_id подставится нужное мне значение (число).

но.... блиннеработает.

или я дуб? не стесняйтесь. я только учусь. ))

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

mwn21,

#WHERE ....... AND category={$category_id}#

MySQL Error!

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

The Error returned was:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '} ORDER by RAND() LIMIT 0,5' at line 1

Error Number:

1064

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

Попробуйте закрыть в кавычки

AND category="{$category_id}"
или вообще, просто в одинарные кавычки:
AND category='$category_id'

Упс... Не заметил что вы закрыли запрос в одинарные кавычки, а не двойные...

Прошу прощение за невнимательность, но в следующий раз все же закройте код в тег [cоde], чтобы в глаза бросалось. :rolleyes:

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

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

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

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

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

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

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

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

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

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