如何在php中使用随机记录创建分页,但要保持以前的状态

如何在php中使用随机记录创建分页,但要保持以前的状态,php,mysql,pagination,Php,Mysql,Pagination,我已经在php和MySQL中创建了一个分页,工作正常,但每次刷新页面时都会显示相同的记录 我面临的问题是如何在每次刷新页面时显示新记录,甚至保持流。例如,如果我在第一页,则每次都会显示随机记录。。当我点击第二页回到第一页时,它会显示完全不同的记录。 如何解决这个问题 $selectQ = "select * from primaryinfo order by rand(3)"; $result = mysql_query($selectQ); $total_results = mysql_nu

我已经在php和MySQL中创建了一个分页,工作正常,但每次刷新页面时都会显示相同的记录

我面临的问题是如何在每次刷新页面时显示新记录,甚至保持流。例如,如果我在第一页,则每次都会显示随机记录。。当我点击第二页回到第一页时,它会显示完全不同的记录。 如何解决这个问题

 $selectQ = "select * from primaryinfo order by rand(3)";
$result = mysql_query($selectQ);
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);
$start;
$end;
if (isset($_POST['pagecc']))
{
$show_page = $_POST['pagecc'];  
if ($show_page > 0 && $show_page <= $total_pages)
{
    $start = ($show_page - 1) * $per_page;
    $end = $start + $per_page;
} else
{ 
    $start = 0;              
    $end = $per_page;
}
}
 else
{ 
$start = 0;
$end = $per_page;
} 
if($end > $total_results)
    $end = $total_results; 

 ///$totlaRecords = mysql_num_rows($result) or die(mysql_error());
 for($i=$start;$i<$end;$i++){
 //displaying here...
 }

$selectQ=“按兰德从primaryinfo订单中选择*(3)”;
$result=mysql\u查询($selectQ);
$total\u results=mysql\u num\u行($result);
$total_pages=ceil($total_results/$per_pages);
$start;
$end;
如果(isset($_POST['pagecc']))
{
$show_page=$_POST['pagecc'];
如果($show_page>0&&$show_page$total_results)
$end=$total_结果;
///$totlaRecords=mysql_num_rows($result)或die(mysql_error());

对于($i=$start;$i请尝试在sql中添加
orderbyrand()

种子:

如果指定了常量整型参数N,则将其用作种子值,从而生成一个可重复的列值序列。在以下示例中,请注意RAND(3)生成的值序列在两个位置都是相同的

CONSTANT\u INT\u VALUE
应该是跨请求维护的常量整数值


例如,您可以使用客户端IP地址的十进制表示。

试着使用这个..我所理解的形式。 单页上的记录必须是“X”。所以,
mysql\u查询(“从primaryinfo中选择*限制0,x”);

第二页
mysql\u查询(“从primaryinfo中选择*限制x,2x”);

因此,这将显示下一条记录,当您返回到第一页时,这些记录将不会重复。

对随机排序的结果集进行分页开始时很奇怪。您能解释一下为什么这样做吗?或者对快速变化的数据集进行分页?不是随机存储的,也不是我想要改变的数据集。我需要一个分页,显示每次刷新时都会有新记录,但当我切换到下一页并返回到上一页时,它应该会显示相同的结果在数组或会话中存储您的随机顺序,然后按您所在的页码跳转过来,因此:每页4条记录,如果您在第2页,它将从数组键4->7,第3=8->11等等中拉出Daniel,是吗这是可行的,但如果在第1页,我不知道rand()查询将返回什么,我如何将它们存储在数组中..如果我错了,请纠正我..这将在每个页面上生成随机..即使返回到上一页…@user1940803:不,不会。结果将随机排序,但随机顺序一致(即使跨页面请求,只要使用相同的种子)。@user1940803:对于种子,您可以使用IP base 10表示,或者只存储
mt_rand()的返回值
在session/APC/memcache中并使用它。它是一样的…它在第一页上显示为随机的..即使保持状态,但…每次刷新都是一样的..我们可以从一条记录随机开始,并来回进行它吗?从primaryinfo中按兰德顺序选择*(3)…这是一个查询,在分页代码上方,问题是,“…但是保持以前的状态”
SELECT ... ORDER BY RAND(CONSTANT_INT_VALUE);