Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


sanyok

Recommended Posts

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

 

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

    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 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.