Задать вопрос
@materlelik

Как сделать выборку случайной записи из mysql ORM?

Доброго времени суток друзья, подскажите как вывести случайную таблицу из mysql.
На сайте идет взаимодействие с базой данных при помощи расширения idiorm.
$app->get( '/article', function () use ($app) {
    $articles = Model::factory('Article')->order_by_desc('id')->limit(2)->find_many();
	return $app->render('home.html', array('articles'=>$articles));
})->name('home');


надо как-то rand() пристроить
  • Вопрос задан
  • 2220 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vsuhachev
Для случайной записи из таблицы нужно сделать что-то такое:
1) your_count =
select count(*) from article
2)
select * from article limit 1 offset floor(rand() * :your_count)
Ответ написан
Комментировать
zoonman
@zoonman
⋆⋆⋆⋆⋆
Динамически создавайте нужную фабрику.

$app->get( '/article', function () use ($app) {

$factories = shuffle(['Article', 'Book']);
$factory = array_shift($factories);

$items = Model::factory($factory)->order_by_desc('id')->limit(2)->find_many();
$factory = strtolower($factory);
	return $app->render('home.html', array("{$factory}s"=>$items));
...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы