mwn21 0 Опубликовано: 6 мая 2010 Рассказать Опубликовано: 6 мая 2010 (изменено) доброе время суток. есть модуль случайных новостей. подключается в 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' - присутствует, корректно выводится. в запросе - ни как. если кто-то в курсе как поправить - подскажите пожалуйста. заранее СПАСИБО. ЗЫ: опять же- если кто-то в курсе опишите плз на сколько сильно такая конструкция повлияет на скорость сайта. если есть вариант ее оптимизировать - огромное спасибо за описание. может другие варианты есть? с тем же эффектом. Изменено 6 мая 2010 пользователем mwn21 Цитата Ссылка на сообщение Поделиться на других сайтах
mwn21 0 Опубликовано: 8 мая 2010 Рассказать Опубликовано: 8 мая 2010 Автор интересно - если в запросе вместо $category_id явно прописать id категории в виде цифры - все работает так как нужно. что с этим можно сделать? Цитата Ссылка на сообщение Поделиться на других сайтах
kang 42 Опубликовано: 8 мая 2010 Рассказать Опубликовано: 8 мая 2010 mwn21, Потому что, ваше условие должно брать значение $category_id, а не само $category_id Попробуйте закрыть его в фигурные скобки. Цитата Ссылка на сообщение Поделиться на других сайтах
mwn21 0 Опубликовано: 8 мая 2010 Рассказать Опубликовано: 8 мая 2010 Автор mwn21, Потому что, ваше условие должно брать значение $category_id, а не само $category_id Попробуйте закрыть его в фигурные скобки. можно пожалуйста по-подробней. на сколько я знаю, если есть переменная $category_id несущая определенное значение (число) - мне ничего не мешает использовать ее (переменную) в запросе. и именно в виде #WHERE ....... AND category="$category_id"#. где при обработке запроса вместо $category_id подставится нужное мне значение (число). но.... блиннеработает. или я дуб? не стесняйтесь. я только учусь. )) Цитата Ссылка на сообщение Поделиться на других сайтах
kang 42 Опубликовано: 8 мая 2010 Рассказать Опубликовано: 8 мая 2010 mwn21, #WHERE ....... AND category={$category_id}# Цитата Ссылка на сообщение Поделиться на других сайтах
mwn21 0 Опубликовано: 8 мая 2010 Рассказать Опубликовано: 8 мая 2010 Автор 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 Цитата Ссылка на сообщение Поделиться на других сайтах
kang 42 Опубликовано: 8 мая 2010 Рассказать Опубликовано: 8 мая 2010 Попробуйте закрыть в кавычки AND category="{$category_id}" или вообще, просто в одинарные кавычки: AND category='$category_id'Упс... Не заметил что вы закрыли запрос в одинарные кавычки, а не двойные... Прошу прощение за невнимательность, но в следующий раз все же закройте код в тег [cоde], чтобы в глаза бросалось. Цитата Ссылка на сообщение Поделиться на других сайтах
prikindel 255 Опубликовано: 9 мая 2010 Рассказать Опубликовано: 9 мая 2010 where approve="1" AND category='.$category_id.' должно работать Цитата Ссылка на сообщение Поделиться на других сайтах
mwn21 0 Опубликовано: 9 мая 2010 Рассказать Опубликовано: 9 мая 2010 Автор where approve="1" AND category='.$category_id.' должно работать да, так работает. спасибо огромное. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.