Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Случайный баннер при обновление страницы


sanyok
 Поделиться

Рекомендованные сообщения

Самый банальный способ

 

в модели создать метод

    public function getRandomBanner() {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "banner_image bi
        LEFT JOIN " . DB_PREFIX . "banner_image_description bid ON (bi.banner_image_id  = bid.banner_image_id)
        WHERE bi.banner_id = '" . (int)$banner_id . "'
        AND bid.language_id = '" . (int)$this->config->get('config_language_id') . "'
        ORDER BY RAND() LIMIT 0,1");
        return $query->rows;
    }

Склонировать контроллер модуля, вызвать метод

 

Учитывая "размеры таблицы, приведенный запрос не сильно нагрузит базу.

Если баннеров много, то метод с запросам можно переделать

public function getRandomBanner() {
  $range_id = query( " SELECT MAX(`banner_id`) AS max_id , MIN(`banner_id`) AS min_id FROM `banner_image` ");
  $min = $query->row['min_id'];
  $max = $query->row['max_id'];
  $random = mt_rand( $min , $max_id );
  $sql = "SELECT * FROM " . DB_PREFIX . "banner_image bi
        LEFT JOIN " . DB_PREFIX . "banner_image_description bid ON (bi.banner_image_id  = bid.banner_image_id)
        WHERE bi.banner_id >= '" . $random . "'";
  $query =  $this->db->query($sql);
  return $query->rows;
}

писал с листа, если есть ошибки - не обессудьте.

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.