Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Рандомный вывод ORM
http://forum.kohanaframework.su/viewtopic.php?f=33&t=288
Страница 1 из 1

Автор:  Gilamov Danis [ 05 авг 2012, 17:25 ]
Заголовок сообщения:  Рандомный вывод ORM

Здравствуйте ,подскажите пожалуйста как можно вывести информацию из БД рандомно используя ORM.
Чтобы баннеры постоянно не повторялись. Причем выводились в разных местах согласно их позиции.

Таблица:
Код:
CREATE TABLE IF NOT EXISTS `ads` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `position` enum('top','right') NOT NULL,
  `img_url` char(64) NOT NULL,
  `url` char(64) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;


Код:
$ads=ORM::factory('ads')->find_all();

Автор:  admin [ 05 авг 2012, 20:04 ]
Заголовок сообщения:  Re: Рандомный вывод ORM

Что-то вроде
->limit(20)
->order_by(DB::expr('RAND()'), NULL)
не подойдет ? Хотя RAND та еще штука тормозная. Записей много ?
И что такое "Причем выводились в разных местах согласно их позиции." ?

Автор:  AmberLEX [ 05 авг 2012, 22:43 ]
Заголовок сообщения:  Re: Рандомный вывод ORM

Вот здесь про выбор случайной записи почитать можно http://www.manhunter.ru/webmaster/411_v ... mysql.html
Как раз и про тормознутость RAND написано и выбрать подходящий вариант для себя. Думаю все равно через db::expr делать придется

Автор:  admin [ 06 авг 2012, 00:33 ]
Заголовок сообщения:  Re: Рандомный вывод ORM

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

Автор:  Gilamov Danis [ 06 авг 2012, 03:27 ]
Заголовок сообщения:  Re: Рандомный вывод ORM

Спасибо метод с RAND() подошел =)

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/