随机使用PHP

时间:2012-11-22 09:26:08

标签: php mysql

我尝试使用ORDER BY rand()来随机化从我的php网站中的MySQL表中获取的数据。但问题是,在我转到下一页后,第1页的一些数据出现在第2页,依此类推。我试着在网上搜索随机化的php版本。但是,我找不到它。任何人都可以帮我解决这个问题吗?谢谢:D

5 个答案:

答案 0 :(得分:1)

您仍然可以使用SQL-rand()。

不是调用rand()为空,而是使用种子调用它,它保持不变。在php中随机生成该种子。

例如,ORDER BY rand(5)将始终返回相同的订单。

如果您使用Ajax调用加载其他页面,请在每次调用时提交相同的种子。如果是每个页面切换上的页面重新加载,您可以使用GET / POST发送它以保持不变。

答案 1 :(得分:0)

如果您每次计算随机数,很明显您在其他页面上也会有相同的值。您需要获取一次随机数并将其传递给其他站点,例如。每HTTP-Get。

使用某些代码,有人可以为您提供更多帮助;)。

答案 2 :(得分:0)

我认为您在查询中使用LIMIT x,y进行分页。 因此,一种可能的解决方案是在SEED中使用ORDER BY并通过SESSION或GET传递

示例:

$seed = isset($_SESSION['seed'])? $_SESSION['seed'] : mt_rand();
$_SESSION['seed'] = $seed;
$qry = "SELECT * FROM `table` ORDER BY RAND($seed) LIMIT 0,5";

答案 3 :(得分:0)

为什么要对随机数据进行分页?

但是......如果您仍然想要这样做,您可以使用POST请求从一个页面移动到另一个页面。但这仍然无法使用。

答案 4 :(得分:0)

似乎你在php中搜索像shuffle()这样的函数。 将返回的数据存储在一个数组中并使用shuffle(array)