Я хочу отображать случайные изображения на разных страницах без повторения из базы данных в php - PullRequest
0 голосов
/ 04 июля 2019

Просмотр:

<?php
$bnrDone = createDynamicBanner();
if (count($bnrDone) === 1):
?>
    <div class="ads-dv under_search">
        <div class="container">
            <div class="row">
                <div class="inner_ads_sys">
                    <a href="<?php echo $bnrDone[0]['ad_url']?>">
                        <img  src="<?php echo base_url('assets/images/advertisements/'.$bnrDone[0]['ad_dp']); ?>" class="img-fluid" alt="<?php echo $bnrDone[0]['ad_title']?>">
                    </a>
                </div>
            </div>
        </div>
    </div>
<?php 
endif; 
?>

Помощник:

function createDynamicBanner()
{
    $CI = & get_instance();
    return $CI->db->distinct()
                  ->select('ad_id,ad_title,ad_url,ad_status,ad_dp')
                  ->order_by('rand()')
                  ->limit(1)
                  ->from('advertisements')
                  ->where('ad_status',1)
                  ->get()
                  ->result_array();
    //echo $CI->db->last_query();
}

Теперь, на удивление, мой глупый упрямый метод (или я) возвращает 1 для любого значения, даже если я исключаю часть предложения betwwenон все еще возвращает 1

1 Ответ

0 голосов
/ 04 июля 2019

Идея 1) Не могли бы вы использовать шаблон Singleton для создания объекта очереди, в котором перечислены все изображения?Тогда ваши вызовы в очередь извлекут следующее изображение.

Идея 2) В качестве альтернативы, вы можете сохранить состояние в БД, создав вторую таблицу имен изображений, которая генерируется каждую ночь.Таблица может иметь два столбца, [imageName] и [usedBy], и вы можете получить следующее изображение, где usedBy имеет значение false (ноль, 0, что угодно).Ваш метод извлечения изображений должен был бы пометить изображение, используемое уникальным идентификатором страницы, как часть выборки, конечно, возможно, как транзакцию SQL для безопасности.

Многое будет зависеть от вашего ожидаемого трафикаобъем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...