Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php获取、随机记录和后退按钮_Php_Random_Back Button - Fatal编程技术网

php获取、随机记录和后退按钮

php获取、随机记录和后退按钮,php,random,back-button,Php,Random,Back Button,我的网站有一个充满游戏、国家、游戏场景等的图书馆 library.php被赋予一个type=\uuuuuuuuuu&id=\uuuuuuuuuuuuu 例如library.php?type=scenario&id=ABCD001 library.php将id保存到会话变量中,并加载适合类型的include 这一切都很好用。现在,我想让我的用户可以选择一个随机场景。为此,我在lib scenario.php(include)中的逻辑中添加了一个特殊的id,这样,如果给定library.php?ty

我的网站有一个充满游戏、国家、游戏场景等的图书馆

library.php
被赋予一个
type=\uuuuuuuuuu
&
id=\uuuuuuuuuuuuu

例如
library.php?type=scenario&id=ABCD001

library.php
id
保存到会话变量中,并加载适合
类型的include

这一切都很好用。现在,我想让我的用户可以选择一个随机场景。为此,我在
lib scenario.php
(include)中的逻辑中添加了一个特殊的
id
,这样,如果给定
library.php?type=scenario&id=random
,include就会知道对随机记录而不是实际的
id
运行另一个查询

这也很好用除非有人连续两次点击
Random Scenario
按钮,并认为前一个随机场景更酷,否则我想回到上面

因为http地址总是
directory/library.php?type=scenario&id=random
,无论您单击了多少次
random scenario
,只要单击“上一步”,您就会被带到最后一个页面,其中有一个您访问过的备用地址

因此,如果您从
主页
页面开始,点击
随机场景
35次,然后确定第34个场景是您想要的,然后单击
返回
,您将回到
主页
页面

我必须承认这不是我预料到的问题。我的一位测试人员是第一个有冲动在随机场景流中进行备份的人,现在我们来了


如何将备份功能添加到脚本中?

使“随机场景”按钮仅链接到实际(但随机)场景id。您可能需要使用SQL查询来构建此功能,以获取场景的所有id

$result = mysql_query("SELECT id FROM scenarios");
while ($row = mysql_fetch_row($result)) {
    $ids[] = $row[0];
}
$randomid = array_rand($ids);
按钮:

<a href="directory/library.php?type=scenario&id=<?php echo $randomid; ?>Random Scenario</a>

您可以通过重定向到场景的规范url来解决此问题,即:id=random重定向到id=A92831或选择的任何内容。最终的url将存储在历史记录中,而不是id=随机url。

我们不是很聪明吗?我真的很喜欢!谢谢你,拜伦!起初,我认为“按RAND()限制1从场景中选择id”会更容易,但事实证明,在选择一行之前,它也会对表中的所有行进行随机排序,这对于大型表来说非常缓慢。我想知道重定向是否有效。不过,我可以在不到一分钟的时间内把拜伦的答案直接输入我的代码,这样他就可以拿到支票了。感谢您回复jxac!重定向仍然需要一个SQL查询(我很确定在.htaccess文件中不能这样做)来找出哪个id是有效的。
$randomid = rand($min, $max);