2

我在 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...
 }

这就是我做分页的方式......希望这可以帮助..

预先感谢。

4

3 回答 3

4

种子RAND(N)

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

SELECT ... ORDER BY RAND(CONSTANT_INT_VALUE);

演示

CONSTANT_INT_VALUE应该是跨请求维护的常量整数值。

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

于 2013-10-18T12:34:27.860 回答
0

尝试使用这个..形成我所理解的。考虑单页上的记录数必须为“x”。所以, mysql_query("select * from primaryinfo LIMIT 0,x");

对于第二页 mysql_query("select * from primaryinfo LIMIT x,2x"); ,这将显示下一条记录,当您返回第一页时,它们不会重复。

于 2014-03-18T12:02:20.750 回答
-2

尝试在你的 sql 添加ORDER BY RAND()

于 2013-10-18T12:27:24.187 回答