Search by WMSN

На базе доргена делаю витрину товаров buy-nike.ru . Не хватает макроса для вывода случайных товаров с фото и ссылкой. Подскажите как на пхп вывести нужную информацию с базы доргена?

Answers:

Генерим рандомный номер от 1 до максимального кол-ва страниц в базе. Делаем запрос к базе на получение одной рандомной строки. Выводим.

Mik Foxi, пробовал я рандомно генерировать 10 случайных записей. Итог: база ложилась от нагрузки

Фарадей, надеюсь ты не юзал конструкцию вида random в самом SQL запросе?! )

Фарадей, возможно ты хотел рандомно вывести не закешированные записи, отсюда и нагрузка. А так вывод рандомных записей - это милисекунды.

webmaster, а как по другому?)))

Роман Питерский, а кеш то в бд лежит

Фарадей, а по другому так, как Foxi выше написал)

Роман Питерский, код в шаблон вставлять? тк белый экран выдало...

Ilya, можно и в шаблон. У меня структура БД другая, подправь под себя в коде и все.

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

Роман Питерский, да, как фокси можно. Я об этом думал, только мне 10 надо было записей, а это считай надо было 10 разных запросов посыласть с разным рандомным числом )))

Роман Питерский, как бы костыльно получается))

Ilya, у доргена гибкость на 100500%, он на чистом php и код открыт. Не хватает знания php ))) а тут 2 варианта: или учить или платить.

Ilya, напишу говнокод за 15уе, норм будет ?

Фарадей, потестировал костыль) время генерации страницы без него в среднем 0,004 сек., с рандомным выводом 10 товаров - 0,007 сек.

Роман Питерский, с рандомным выводом 10 , это ты под каждый запрос свой sql, то есть 10 вызовов sql?

Фарадей, угу, в цикле 10 запросов

Можешь и одним запросом:
SELECT name, content FROM table WHERE id IN (2,5,70,40);

Хотя бы это покури: developer.alexanderklimov.ru )

Роман Питерский, нормалек. Еще бы сделать пагинацию с не повторяющимися заголовками).

Фарадей, если хочешь выводить рандомные записи подряд, можешь использовать BETWEEN, тогда генерируешь только первую цифру min в диапазоне (1, id_max-10), а вторую в запросе берешь на 10-ку больше:
SELECT * WHERE id BETWEEN «'.$min.'» AND «'.min+10.'»
Должно работать)

Фарадей, у меня пагинация везде в Disallow, так что с этим не парюсь ) а если хочешь индексировать навигацию, то добавляй в титлы номер страницы

Роман Питерский, Я хочу сделать меню, чтобы зайдя в категорию открывались товары из этой категории, но что бы один товар не повторялся мног8о раз с разными ключами, а только один раз и допустим 10 на страницу. Тогда считай уже как сдл получается )))