查看:
<?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();
}
现在令人惊讶的是,即使我排除了betwwen子句部分,我的愚蠢固执方法(或者说我)仍会为任何值返回1
答案 0 :(得分:0)
想法1)您可以使用Singleton模式创建一个列出了所有图像的队列对象吗?然后,您对队列的调用将检索下一张图像。
想法2)另外,您可以通过创建第二个映像名称表将状态保存在DB中,该表每晚都会重新生成。该表可能有两列,[imageName]和[usedBy],您可以得到下一张图像,其中usedBy为false(null,0,无论如何)。您的图片获取方法必须将图片标记为页面的唯一ID使用的图片作为获取的一部分,当然,为了安全起见,也可能将其标记为SQL事务。
很大程度上取决于您的预期流量。