首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我想显示随机图像在不同的页面,没有重复从数据库在php

要在不同的页面上显示随机图像且不重复,你可以采用以下步骤:

基础概念

  1. 数据库查询:从数据库中检索图像信息。
  2. 随机选择:使用PHP的随机函数来选择图像。
  3. 会话管理:使用会话来记录已经显示过的图像,以确保不会重复。

相关优势

  • 用户体验:随机显示图像可以增加页面的趣味性和吸引力。
  • 内容多样性:避免重复显示同一图像,保持内容的新鲜感。

类型

  • 纯随机:每次请求都随机选择图像。
  • 不重复随机:确保同一图像不会在短时间内重复显示。

应用场景

  • 网站横幅:在网站的顶部或底部显示随机广告或特色图像。
  • 社交媒体:在用户的动态中插入随机背景图像。
  • 游戏:在游戏中显示随机的背景或道具图像。

实现步骤

  1. 数据库设计:确保你的数据库中有一个存储图像路径的表。
  2. PHP脚本:编写PHP脚本来从数据库中随机选择图像,并记录已显示的图像。

示例代码

代码语言:txt
复制
<?php
session_start();

// 假设你的数据库表名为 images,包含 id 和 path 字段
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database_name";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 获取所有图像ID
$sql = "SELECT id FROM images";
$result = $conn->query($sql);

$allImages = [];
while ($row = $result->fetch_assoc()) {
    $allImages[] = $row['id'];
}

// 移除已经显示过的图像ID
$displayedImages = isset($_SESSION['displayed_images']) ? $_SESSION['displayed_images'] : [];
$availableImages = array_diff($allImages, $displayedImages);

if (empty($availableImages)) {
    // 如果所有图像都已显示过,重置会话
    $_SESSION['displayed_images'] = [];
    $availableImages = $allImages;
}

// 随机选择一个图像ID
$randomIndex = array_rand($availableImages);
$randomImageId = $availableImages[$randomIndex];

// 获取图像路径
$sql = "SELECT path FROM images WHERE id = $randomImageId";
$result = $conn->query($sql);
$imagePath = $result->fetch_assoc()['path'];

// 记录已显示的图像ID
$_SESSION['displayed_images'][] = $randomImageId;

$conn->close();

// 显示图像
echo "<img src='$imagePath' alt='Random Image'>";
?>

可能遇到的问题及解决方法

  1. 图像重复显示:确保会话中的displayed_images数组正确记录了已显示的图像ID。
  2. 数据库连接问题:检查数据库连接参数是否正确,确保数据库服务器正常运行。
  3. 性能问题:如果图像数量很大,可以考虑使用缓存机制来减少数据库查询次数。

参考链接

通过以上步骤和代码示例,你可以在不同的页面上显示随机图像且不重复。希望这对你有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Z-BlogPHP开运锦鲤前来报道(更新说明及操作教程,必看文章)

更新说明:(2020/08/21) V、修复php兼容性代码(php5.6导致的一处错误)。 更新说明(2020/08/14) V、优化SEO规范,减少部分页面描述及关键词重复显示的问题。...显示方法:模块管理-图文推荐(如果没有重新点击启用主题)-拖拽到右侧对应侧栏即可。 V、修改部分PHP逻辑代码,减少数据库请求次数。...如果想要首页自带翻页功能,所显示的文章数量,需要在网站设置,页面管理“列表页显示文章的数量”设置(跟分类显示文章的数量是一致的),想显示几篇就填写对应的数字就行。 V、修复部分BUG。...(别再来找我说H2没有了,我受够了,喏,给你们更新了) --.优化导航栏间距。 --.删除和优化搜索框,减少在导航栏所占用的空间。 --.新增评论用户加V标识。...自定义缩略图(设置分类所显示的缩略图,如果文章没有图片,则优先显示自定义,如果没有自定义那么随机显示图片,文章没有图片移动端则不显示,默认关闭)。

3.4K30

Z-BlogPHP开运锦鲤前来报道(更新说明及操作教程,必看文章)

更新说明:(2020/08/21) V、修复php兼容性代码(php5.6导致的一处错误)。 更新说明(2020/08/14) V、优化SEO规范,减少部分页面描述及关键词重复显示的问题。...显示方法:模块管理-图文推荐(如果没有重新点击启用主题)-拖拽到右侧对应侧栏即可。 V、修改部分PHP逻辑代码,减少数据库请求次数。...如果想要首页自带翻页功能,所显示的文章数量,需要在网站设置,页面管理“列表页显示文章的数量”设置(跟分类显示文章的数量是一致的),想显示几篇就填写对应的数字就行。 V、修复部分BUG。...(别再来找我说H2没有了,我受够了,喏,给你们更新了) --.优化导航栏间距。 --.删除和优化搜索框,减少在导航栏所占用的空间。 --.新增评论用户加V标识。...自定义缩略图(设置分类所显示的缩略图,如果文章没有图片,则优先显示自定义,如果没有自定义那么随机显示图片,文章没有图片移动端则不显示,默认关闭)。

2.8K40
  • zblogPHP万能型主题模板希望(Hopelee)全新绽放,独具热爱,自成一派

    -- 新增列表在文章无图时显示随机图片的功能,功能设置-无图显示随机,开启。 -- 优化列表摘要调用接口,可选择直接调用正文,文章设置-摘要调用正文,开启。...-- 修复分类未设置模板导致页面显示不完整的问题。 1.2.9(21/12/08) -- 修复排序函数在部分情况下的兼容性代码。 -- 优化随机调用代码会调用草稿文章的问题。...-- 修复文章列表调用标签重复的问题。 -- 优化适配不同浏览器兼容性代码。 -- 优化更大屏幕尺寸网页最大宽度代码。 -- 其他细节优化。...更新日志:2021/11/05 -- 优化侧栏随机显示代码,减少文章基数大导致网站卡顿的问题。 -- 优化部分php函数代码。 -- 优化部分后台代码的闭合性及整体结果,减少页面错版的问题。...-- 优化文章商品模板顶部模块svg在移动端代码显示不友好的问题。 -- 优化php授权代码。 -- 优化文章商品模板没有售价和演示接口问题(误删,已恢复)。

    2.2K30

    ZBP旗舰主题博览《Expolee》,新年新气象我的风格就是独“鼠”一帜!

    ,因为在于调用的书缓存文件不是数据库实时查询,解决方法:修改部分侧栏内容后没有效果,点击文章管理,随便编辑任意一篇文章,直接点击提交即可生成新的缓存文件,后前台刷新生效。...更新详情:09/09 -- 修复缩略图在百度快照下不显示的问题。 -- 优化文章打赏代码及接口。 更新详情:09/01 -- 修复图片延迟显示重复加载的问题,优化图片延迟显示代码。...-- 优化分类模板背景图默认文字信息。 更新详情:08/13 -- 优化网站代码格式。 -- 优化网站各页面SEO规范,防止出现重复的关键词及页面描述。...优化后台授权验证PHP代码。 优化php代码格式。 更新详情:(06/05) 优化导航栏下方背景图视觉差特效。 优化原侧栏调用缓存文件的PHP代码, 优化后台校验代码,增加核心加密文件。...轮播设置:如图,除企业模板之外,另外三种风格的轮播尺寸一直,建议尺寸(830*381),有些可能会问,我想换别的尺寸可以么?

    1.4K20

    推荐几个提升php技能的练手项目

    chatrobot[1] 2023 年什么最火,我想一定是 chatgpt 的出现,它的出现在全球科技圈刮起了一场旋风,通过这个项目,你可以搭建出一个 AI 聊天机器人,不仅让你提升 php 的技能,...您还可以添加其他功能,例如不同的时区、根据要求选择课程的学生选项或实时出勤记录更新。...通过这个项目,你将使用 Laravel 来构建一个模拟 Netflix 的 PHP 网络应用程序。这还包括后端的 MySQL 数据库。...每次重新加载页面时,您的 Web 应用程序将包含随机选择的电影,以及包含 10 部各种类型的随机电影的一系列轮播。用户可以查看电影详细信息,然后通过协作过滤技术访问基于这些选择的电影推荐。...这个功能强大的 PHP 项目看似简单,但却是学习创建像在线购物网站这样无处不在的东西的全栈过程的好方法。

    32430

    8 行代码用Python画一个中国地图

    当然Jupyter也可以服务众多浏览器,但它更多的还是方便研究人员,对研究人员来说简直是太方便了,你把代码像写文章一样直接写在输入框里,然后在本页面直接就看到了这个代码的结果,随时修改,随时展现,文码混排...如果我让你根据上面csv文件里的信息,画一个图,用Java该怎么做? 你当然会去找第三方插件库,然后又是一通折腾,终于把图做出来,然后编译,然后运行。 如果我要改配色呢?如果我要求画地图呢?...第1行甚至可以不写,它定义了图的大小。第2行我们创建一个地图,第3行把海岸线画上,第4行显示这个地图,就是这样: 你用Java的4行代码画一个地图出来?...=53) 然后就得到了中国地图: 看上去有点变形,这是因为我们没有添加任何投影的原因,Basemap提供24种不同的投影方式,你可以自己一个个试一下,比较常用的是兰勃特投影,我们添加一下: m = Basemap...最后再为Java和PHP美言几句:大家分工不同,Java和PHP虽然做这样的数字研究不是很方便,但还是非常适合web开发的,而Python在这方面并不适合。

    1.4K20

    自建MD5解密平台-续

    为了实现一个简单高效的 MD5 彩虹表生成器,我使用了 PHP 和 MySQL,本文将详细介绍整个实现过程,并深入探讨如何解决开发中遇到的问题。...项目背景和需求在项目的初始阶段,我们需要一个自动化生成 MD5 彩虹表的工具,并将生成的数据存储在 MySQL 数据库中。主要功能包括:**批量生成 MD5 哈希和对应的原始字符串**。...然而,在实现的过程中遇到了两个关键问题:每次刷新页面时,因没有去重导致重复数据大量生成。设置批量生成的目标条数(如 10,000 条),但数据量却无法稳定在目标值。...};通过这种方式,可以在页面刷新时持续调用生成函数,直到数据库存储满足预期需求。...结论本文通过详细介绍一个 PHP 实现的 MD5 彩虹表生成器,展示了从数据库设计到代码优化的完整流程。通过随机生成字符串、去重插入以及前端自动刷新机制,实现了高效的批量生成工具。

    8010

    用 4 行代码画一幅中国地图

    ,然后在本页面直接就看到了这个代码的结果,随时修改,随时展现,文码混排,是Markdown的一个增强版,毕竟Markdown还只能显示文字,最多再加上一些图片,而Jupyter是可以直接运行Python...如果我让你根据上面csv文件里的信息,画一个图,用Java该怎么做?你当然会去找第三方插件库,然后又是一通折腾,终于把图做出来,然后编译,然后运行。如果我要改配色呢?如果我要求画地图呢?...第1行甚至可以不写,它定义了图的大小。第2行我们创建一个地图,第3行把海岸线画上,第4行显示这个地图,就是这样: ? 你用Java的4行代码画一个地图出来?...我们想加上省的边界怎么办呢?Basemap缺省的包里没有中国的省区,只有美国的州,毕竟是美国人做的嘛。...最后再为Java和PHP美言几句:大家分工不同,Java和PHP虽然做这样的数字研究不是很方便,但还是非常适合web开发的,而Python在这方面并不适合。

    1.1K50

    PHP8 对象、模式和实践(六)

    在一个没有充分分层的系统中,自动化测试必须在一端协商 HTML 接口,而在另一端冒着触发对数据库的随机查询的风险,即使它们的关注点不是针对这两个领域。尽管有测试总比没有好,但这种测试必然是偶然的。...通过创建具有不同职责的层,您可以构建一个组成部分更易于扩展和调试的系统。通过将具有相同职责的代码放在一个地方来限制重复(而不是用数据库调用或显示策略来限制系统)。...假设您想要呈现一个显示 Woo 系统中所有场馆列表的页面。即使完成了数据库检索代码,在没有前端控制器的情况下,要获得这个简单的结果仍然是一项艰巨的任务。 视图是一个地点列表;请求是一个地点列表。...如果没有包含发生,则显示页面底部的 HTML(视图)。 你可以在图 12-8 中看到控制器和视图的组合。 这可以作为一个快速测试,但是任何规模或复杂性的系统都可能需要更多的支持。...实际上,我认为大多数开发人员在设计他们的领域模型时至少会关注数据库。没有人想设计这样的结构,当涉及到将对象放入和取出数据库时,它会迫使您(或者,更糟的是,您的同事)陷入复杂代码的困境。

    21810

    用Python画一个中国地图

    ,然后在本页面直接就看到了这个代码的结果,随时修改,随时展现,文码混排,是Markdown的一个增强版,毕竟Markdown还只能显示文字,最多再加上一些图片,而Jupyter是可以直接运行Python...如果我让你根据上面csv文件里的信息,画一个图,用Java该怎么做?你当然会去找第三方插件库,然后又是一通折腾,终于把图做出来,然后编译,然后运行。如果我要改配色呢?如果我要求画地图呢?...第1行甚至可以不写,它定义了图的大小。第2行我们创建一个地图,第3行把海岸线画上,第4行显示这个地图,就是这样: ? 你用Java的4行代码画一个地图出来?...我们想加上省的边界怎么办呢?Basemap缺省的包里没有中国的省区,只有美国的州,毕竟是美国人做的嘛。...最后再为Java和PHP美言几句:大家分工不同,Java和PHP虽然做这样的数字研究不是很方便,但还是非常适合web开发的,而Python在这方面并不适合。

    2.9K60

    用Python画一个中国地图【转】

    ,然后在本页面直接就看到了这个代码的结果,随时修改,随时展现,文码混排,是 Markdown 的一个增强版,毕竟 Markdown 还只能显示文字,最多再加上一些图片,而 Jupyter 是可以直接运行...scikit-learn 第三神器 scikit-learn ,一般缩写为 sclearn ,各种机器学习算法,基本上只要你能想得到的,线性回归,逻辑回归,SVM,随机森林,最近邻居等等等等,各种算法全部在...如果我让你根据上面 csv 文件里的信息,画一个图,用 Java 该怎么做?你当然会去找第三方插件库,然后又是一通折腾,终于把图做出来,然后编译,然后运行。如果我要改配色呢?如果我要求画地图呢?...第1行甚至可以不写,它定义了图的大小。第2行我们创建一个地图,第3行把海岸线画上,第4行显示这个地图,就是这样: ? 你用 Java 的 4 行代码画一个地图出来?...我们想加上省的边界怎么办呢? Basemap 缺省的包里没有中国的省区,只有美国的州,毕竟是美国人做的嘛。

    79630

    用Python画一个中国地图

    当然Jupyter也可以服务众多浏览器,但它更多的还是方便研究人员,对研究人员来说简直是太方便了,你把代码像写文章一样直接写在输入框里,然后在本页面直接就看到了这个代码的结果,随时修改,随时展现,文码混排...如果我让你根据上面csv文件里的信息,画一个图,用Java该怎么做? 你当然会去找第三方插件库,然后又是一通折腾,终于把图做出来,然后编译,然后运行。 如果我要改配色呢?如果我要求画地图呢?...第1行甚至可以不写,它定义了图的大小。第2行我们创建一个地图,第3行把海岸线画上,第4行显示这个地图,就是这样: ? 你用Java的4行代码画一个地图出来?...我们想加上省的边界怎么办呢?Basemap缺省的包里没有中国的省区,只有美国的州,毕竟是美国人做的嘛。...最后再为Java和PHP美言几句:大家分工不同,Java和PHP虽然做这样的数字研究不是很方便,但还是非常适合web开发的,而Python在这方面并不适合。

    1.5K40

    最新宽字节注入攻击和代码分析技术

    访问id=1',页面的返回结果如图4-51所示,程序并没有报错,反而多了一个转义符(反斜杠)。 图4-51 从返回的结果可以看出,参数id=1在数据库查询时是被单引号包围的。...图4-56 因为页面直接显示了数据库中的内容,所以可以使用Union查询。...图4-57 然后尝试在页面中2的位置查询当前数据库的库名(user()),语句如下: id=-1%df' union select 1,user(),3,4,5%23 返回的结果如图4-58所示。...图4-59 从返回结果可以看到,数据库的第一个表名是users,如果想查询后面的表名,则需要修改limit后的数字,这里不再重复。...由于在数据库查询前执行了SET NAMES 'GBK',将数据库编码设置为宽字节GBK,所以此处存在宽字节注入漏洞。 在PHP中,通过iconv()进行编码转换时,也可能存在宽字符注入漏洞。

    29030

    java和前端哪个好学_java和前端哪个难学?「建议收藏」

    问Java 和 前端哪个难学, 就像在问牛排和中餐哪个好吃一样。Java 是门编程语言,前端是一个领域不能相比较。 再回到正题。 Java 和 JavaScript 哪个难学? 答案是各有各的难。...理解了也没有那么难吧。 我大学的学的第一门语言是 C 和 C++ 单纯就语言难说,刚开始接触 C++ 面向对象真的难。各种封装、继承、多态、接口、范性。弄得人头疼。理解之后没那么难了。...使用 SSH , 从后端设计数据库到搭建缓存、再到前端页面。 大三期间去学校实验室做项目,接触了PHP, 后面就用PHP 写后端,当时就只觉得 PHP 语法简单,比Java 写 Web 简单很多。...接触了JavaScript ,用它来写动画,轮播图之类的。就语法学习难度而言 Java 比 JavaScript 难不到哪里去。当然我可能并没有深入 Java 一些思想。...后来 精学了JavaScript 发现还是挺难的, 但是很多理论在 Java 和 JavaScript 中是通用的。闭包、面向对象、模块化、垃圾回收 这些都得学。所有我是不太理解 谁难谁简单。

    1.1K50

    使用Ajax建立的Server Push和Iframe建立的Comet

    这里使用的例子就是一个在线CD销售页面,前台发起ajax请求,后台随机取一个数,从现在库中减去获得的随机数,然后返回给前台; 前台如果想改变库存的数据,在文字输入框输入相应的数量,然后提交给后台。...因为代码是从网上一篇文章(可点击查看详情)中下载过来的,他使用了prototype中的ajax,这里就没有作修改。...需要下载源代码的,请点击这里>> 需要说明的,它的主页中form的默认提交行为没有被阻止掉,将会导致页面被刷新。...> 2、使用Iframe建立的Comet 这里针对IE和其它浏览器做了不同的处理,因为IE中的htmlfile添加的iframe,在浏览器当前窗口的底部将看不到加载进度(看上去比较平静),而其它浏览器则会出现一个...这个示例就两个文件:html页面、php页面,实现的效果就是取当前服务器的时间,然后在前台页面显示。 运行的效果大致如下图所示(IE、Chrome): ? ? HTML页面的代码: <!

    85020

    Mantis安装记要

    最近想研究一下Bug跟踪,好在以后的项目中得到应用,花了几个晚上终于搞出来一个。Bug跟踪的软件还是比较多,我第一个见到的是Microsoft的 Raid4.5。...权限设置灵活,不同角色有不同权限,每个项目可设为公开或私有状态,每个缺陷可设为公开或私有状态,每个缺陷可以在不同项目间移动; l       主页可发布项目相关新闻,方便信息传播; l      ...2、安装 我采用的是在Windows2003环境下,Apache+PHP+MySql的方式进行的,具体怎么在Windows下搭建这个环境我就不用多说了,百度一下到处都是。...通过一个晚上的摸索,我总结出如下的方法: 1,MySql在安装好进行配置的时候,一定要将字符编码改为UTF-8,这样保存中文到数据库的时候才不会报错。...6,测试:再次输入index.php,这个时候将不会再出现要求数据库配置的页面, 如果出现登录页面,则一切OK!

    1K10

    李洋个人博客《mxlee》zblog主题-梦想家(精品推荐)

    2020/09/07更新: V、修复缩略图在快照下不显示的问题。 2020/09/04更新: V、优化图片延迟显示代码,修复图片延迟显示重复加载的问题。...V、热门评论(图文显示,默认调用4篇)和热门文章天数采用同一接口。 V、优化PHP部分逻辑代码。 2019/09/17更新: V、修复SEO标题某个页面页数重复BUG。...--、更新搜索页侧栏文章调用没有数据的BUG。 --、修复公共cdn静态资源库链接。 --、php代码精简、优化和重组,删除侧栏重复模块。...--.修复开启 “作者-佳句赏析” 无效的BUG。 --.修复随机图文展示缩略图优先显示自定义的功能。 --.修复文章单页没有右侧评论按钮功能的BUG。 --.优化网站浏览总量PHP代码。...--.新增随机图文推荐,原来侧栏的TAB随机更换成季度热门,具体修改如下: 侧栏图文数量,是指随机展示调用的数量,效果图: ****************切记,更新完主题先进行“侧栏图文数量”设置

    2.1K20

    zblog明信片主题类型模板全新绽放,R角、透明、森系您想要的我都有

    轮播图设置确保每张图片尺寸一致才行,否则可能会出现高低不同等错乱情况! 您有好的建议也可以联系作者,可能会帮助您实现!...-- 修复在不同移动端下部分页面出现错位的问题。 -- 优化og富媒体标签代码,完善摘要关键词调用方案。 -- 优化模板首页轮播代码,减少无用js加载,加速网页速度。 -- 优化缩略图显示优化方案。...2021/11/03 -- 优化随机调用文章模块的php代码。 -- 优化部分php代码,减少文章数过万导致加载延迟的问题。...2021/08/04 -- 优化侧栏随机调用文章模块在部分情况下调用为空的BUG。 -- 优化夜间模式搜索框内字体颜色看不清的问题。 -- 优化整体页面细节及样式代码。...-- 修复单页模板在部分没有评论的情况下主题布局没有对齐的问题。 2021/03/13 -- 优化网站PHP代码,删除部分api接口。 -- 删除文章页顶部标题链接代码。

    1.9K20

    通过避免下列 10 个常见 ASP.NET 缺陷使网站平稳运行

    除此之外,即使 RNGCryptoServiceProvider 错误地生成了重复的随机数字,也无法解释 ASP.NET 为何不可思议地将有效的会话 ID 替换为新的 ID(不唯一)。...在具有不同应用程序和一组不同 Web 服务器的另一家公司中,我们看到完全相同的问题也消失了。就像在 Contoso.com 一样,消除输出缓存就能解决问题。...因此,您不必像在传统的 ASP 中那样编写代码,以防止在单击按钮时文本框中的文本消失,或在回发后重新查询数据库和重新绑定 DataGrid。...使用自定义页适配器的一个缺点是它全局性地作用于应用程序中的每一页。如果您更愿意将其中一些页面的视图状态保留在会话状态中而不保留其他页面的视图状态,请使用图 4 中显示的方法。...该解决方案能够保持类本身的设计。与 XML 序列化程序不同的是,二进制序列化程序序列化字段,而不管是否可以访问。图 7 显示 Posts 类的修复版本并突出显示了更改的附带配置文件定义。

    3.6K80

    学会编程更要学会找错误

    一直想写点我在编程学习中遇到的问题以及我是如何解决的,我是一个PHPer,而且对计算机有着深厚的兴趣。...今天闲着没事,就顺手整理一点,随后会相继会做更多总结,敬请您的关注…… 如果你是老鸟,我想你看到这个应该可以勾起你当时从我这样的菜鸟一步一步走过来的回忆吧!...>,有很大一部分网友问过我为何代码在他的环境下不能解析就是这个短标签没有开启),这样就需要php.ini的帮助了。...比如遇到会进行一些操作和解析) 说的有点罗嗦,你可能还没有理解,那么就去百度或者google一下吧(网上有这样一句调侃的话:外事问谷歌,内事问百度,房事问天涯) 2、从post和get...wd=web%D4%CB%D0%D0%D4%AD%C0%ED这样形式的都是get方法的传送的数据(在接收页面就可以用$_GET获取发送的数据),剩下你表面看不到的都是post的方法,可以在接受页面用$_

    94570
    领券