sensei88: Комментарии

Главные вкладки

14 июля 2010 в 23:33

Ребят, помогите пожалуйста, настройте этот сниппет, кто поможет и код будет работать, заплачу 200р на яндекс деньги!

<?php
$tag = 'Телефоны'; // Настраиваем нужный тег. Если нужен вывод материалов по нескольким терминам, то вместо этого кода пишем следующий:
//$tags = "'термин1','термин2','термин3'";
$type = "image";
$count = 9; // Максимальное количество выводимых нод.

30 июня 2010 в 1:53

от Gumk

Parse error: syntax error, unexpected ';' in Z:\home\localhost\www\magazin\includes\common.inc(1699) : eval()'d code on line 22

я пробовал ранее добавлять в Ваш код select, результат чуть выше

29 июня 2010 в 16:01

Знаю что надо учить SQL и PHP, этим и занимаюсь потихоньку, только в этом случае мне до начала июля нужно с этим сниппетом разобраться, время жмет, я даже готов отблагодарить (200wmr) за корректную донастройку, а затем написать в этот топик причины ошибки и если это дело в сниппете, то выложить работающий вариант сюда для тех, у кого в будущем случатся подобные ситуации.

29 июня 2010 в 15:03

в том то и дело, что не понимаю где в запросе ошибка. С одним простым запросом <?php ORDER BY RAND()?> все работает отлично, но это не для моего случая, с двумя запросами непонятно почему, но не работает.

А где может генерироваться некорректный запрос? И как его можно исправить?

28 июня 2010 в 18:48

"gumk" wrote:
<?php<?
$tag = 'Телефоны'; // Настраиваем нужный тег. Если нужен вывод материалов по нескольким терминам, то вместо этого кода пишем следующий:
//$tags = "'термин1','термин2','термин3'";
$type = "image";
$count = 9; // Максимальное количество выводимых нод.

28 июня 2010 в 17:42

В этом варианте все только ручками прописывать надо, иначе никак, т.к. привязка идет к термину, если не прописывать его, то под определенными типами, допустим те же <?php $tag = 'Телефоны'?>, будут выводиться абсолютно все ноды разных типов.

28 июня 2010 в 17:26

"gumk" wrote:
<?php
$tag = 'Телефоны'; // Настраиваем нужный тег. Если нужен вывод материалов по нескольким терминам, то вместо этого кода пишем следующий:
//$tags = "'термин1','термин2','термин3'";
$type = "image";
$count = 9; // Максимальное количество выводимых нод.

28 июня 2010 в 11:27

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

А в этом варианте что удобно, например, товары с тегом "телефоны" могут выводить в нужном блоке и телефоны, а также и другие нужные типы, тот же термин "аксессуары для телефонов" и т.д., думаю Вы меня поняли?

28 июня 2010 в 0:41

Значит это дело в этом запросе, где запятая в одинарных ковычках <?php $rnd1 .= ', '.rand(0, $cc-1); ?>,

а в этом запросе

{$rnd=rand(0, $cc-1);
$rnd1="$rind1+$rnd,";},

предложенном ранее, похожая ошибка,

27 июня 2010 в 23:20

"Dan" wrote:
почему бы не $rnd1 .= ', '.rand(0, $cc-1); К тому же переменная $rind1 нигде не определяется.

Не знаю почему, прописал Ваш вариант, такая же ерунда,

27 июня 2010 в 15:01

Спасибо большое iHappy!

Буду пробовать, а что касается твоего второго варианта и моего упрощенного, где сортировка <?php ORDER BY RAND()?>, то можно при использовании этих простых сниппетов допустим просто включить кеш на час, ну или более, чтобы уменьшить нагрузку на сайт и сервер и на этом остановиться, побочных эффектов не будет?

Посещаемость будущего проекта будет 5000 и более в сутки, поэтому сейчас нужно настроить исходный код так, чтобы проблем и зависаний не было.

27 июня 2010 в 12:14

попробовал Ваш код, ошибку в блоке вот такую выводит,

user warning: 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 ') LIMIT 0, 9' at line 7 query: SELECT n.nid, n.title FROM node n INNER JOIN term_node tn ON n.nid = tn.nid INNER JOIN term_data td ON tn.tid = td.tid WHERE td.name = 'Телефоны' AND n.status = 1 AND n.nid IN (+9732,) LIMIT 0, 9 in Z:\home\localhost\www\magazin\includes\common.inc(1699) : eval()'d code on line 18.

27 июня 2010 в 2:28

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

<?php
$tag = 'Телефоны'; // Настраиваем нужный тег. Если нужен вывод материалов по нескольким терминам, то вместо этого кода пишем следующий:
//$tags = "'термин1','термин2','термин3'";
$type = "image";
$count = 9; // Максимальное количество выводимых нод.

27 июня 2010 в 2:04

Вот готовый код,

<?php
$tag = 'Нужный тег'; // Настраиваем нужный тег. Если нужен вывод материалов по нескольким терминам, то вместо этого кода пишем следующий:
//$tags = "'термин1','термин2','термин3'";
$type = "image";
$count = 9; // Максимальное количество выводимых нод.

$result = db_query_range(db_prefix_tables("SELECT n.nid, n.title
FROM {node} n
INNER JOIN {term_node} tn ON n.nid = tn.nid
INNER JOIN {term_data} td ON tn.tid = td.tid
WHERE td.name = '%s' AND
n.status = 1
ORDER BY RAND()"),$tag,0,$count);

9 июня 2010 в 21:50

Мдааа, у меня в одной только таблице 14000 записей.

Значит такая схема никуда не годится? (Первый вариант, где я заменил ORDER BY n.created DESC на ORDER BY RAND())

<?php
$tag = 'Телефоны'; // Настраиваем нужный тег. Если нужен вывод материалов по нескольким терминам, то вместо этого кода пишем следующий:
//$tags = "'термин1','термин2','термин3'";
$type = "image";
$count = 9; // Максимальное количество выводимых нод.

30 мая 2010 в 1:19

Вот где собака зарыта!!!

"Serge66" wrote:
<?phpforeach ($items as $item){
$output .= "

". $item . "

"; }
}?>

Задача решена!

Спасибо БОЛЬШОЕ Serge66 за простое и верное решение!

Я надеюсь оно поможет и многим другим участникам этого форума!

30 мая 2010 в 0:32

Serge66, спасибо большое за совет!

Стили то я подогнать смогу, это не проблема, проблема где, а точнее что именно оборачивать в сниппете дивами.

29 мая 2010 в 22:57

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

{width: 264px; height: 1000px; float: left; margin: 5px 5px; padding: 4px; }

, но на выходе получалась абракодабра, все картинки смешивались.

Картинку к основному товару я конечно сделал больше, чем к похожим Wink