php - 我想在不同的页面上显示随机图像,而不需要从 php 中的数据库中重复
问题描述
看法:
<?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,我的愚蠢顽固的方法(或者我是)对于任何值都返回 1
解决方案
想法 1)你可以使用单例模式创建一个列出所有图像的队列对象吗?然后您对队列的调用将检索下一个图像。
想法 2)或者,您可以通过创建第二张图像名称表来保存数据库中的状态,该表每晚都会重新生成。该表可以有两列,[imageName] 和 [usedBy],并且您可以获得下一张 usedBy 为 false 的图像(null,0,等等)。您的图像提取方法必须将图像标记为页面的唯一 ID 使用的图像作为提取的一部分,当然,为了安全起见,可能作为 SQL 事务。
很大程度上取决于您预期的流量。
推荐阅读
- python - 无法向抽象的子类方法python添加类型提示
- python - 在 Python Pandas 中删除数据框行名
- jquery - 通过 jQuery-File-Upload 和 Asp.net MVC Core 提交没有任何文件的表单
- python - 如何覆盖控制台输出?
- c++ - SDL2_image 和 XCODE 的构建问题
- flutter - 如何在不同文件/页面的底部导航中分页路由
- android - 为什么 DividerItemDecoration 在 recyclerView 片段中获取空对象引用?
- python - pandas:忽略 lambda 中的异常
- python - 在 OpenCV 中是否有任何用于检测左耳和右耳的 haar 级联?
- python - 如何从 Python 中的列表中获取相同的随机样本