好吧,伙计们,我有这个问题
$mysql = "select * from xxx where active = 1 order by Rand() limit $start,12";
mysql_query($mysql);
到目前为止一切都很好。
我想要:当我按下下一个按钮(第 2 页或第 3 页等)以查看接下来的 12 条随机记录但不显示我在上一页中的前 12 条随机记录时!
谢谢你们!ps对不起,我的英语不好!
好吧,伙计们,我有这个问题
$mysql = "select * from xxx where active = 1 order by Rand() limit $start,12";
mysql_query($mysql);
到目前为止一切都很好。
我想要:当我按下下一个按钮(第 2 页或第 3 页等)以查看接下来的 12 条随机记录但不显示我在上一页中的前 12 条随机记录时!
谢谢你们!ps对不起,我的英语不好!
您需要保留一个数组(例如$arrRecordIds
)来跟踪之前页面上显示的所有记录的 id。
当您在第一页时:
$arrRecordIds=array(); // Empty array
当您在第二页时:
$arrRecordIds=array_merge($arrRecordIds, $arrNewRecordIds);array_unique( $arrRecordIds );
如果您的选择查询只是连接 -where id NOT IN ( implode(',', $arrRecordIds ) )
这里$arrNewRecordIds
应该包含页面上记录的 id。
只需尝试在数组中检索您需要的数据,在 PHP 中使用 shuffle() 将其随机化,并使用一些 JQuery 对结果进行分页,这将是非常棒的,只需一个查询而无需刷新。;)
您可以跟踪以前显示的记录id
并将它们放入一个数组中。
在您的查询中使用id NOT IN (array)
应用系统随机抽样的概念,
参考: http: //www.socialresearchmethods.net/kb/sampprob.php
尝试在 showdata.php 文件中使用以下脚本
$per_page = 12;
$sqlc = "show columns from coupons";
$rsdc = mysql_query($sqlc);
$cols = mysql_num_rows($rsdc);
$page = $_REQUEST['page'];
$start = ($page-1)*12;
$N = 1000; //Total rows in your table (query to get it dynamically)
$n = $per_page;
$k = ceil($N/$n);
$range[] = $page;
for($i=1;$i<$n;$i++) {
$range[] = ($page+$k)*$i;
}
$sqln = "SELECT * FROM ( SELECT @rownum:= @rownum+1 AS rindex, n.* FROM xxx n, (SELECT @rownum := 0) r ) AS rows WHERE rindex IN (".implode(',',$range).")";
$rsd = mysql_query($sqln);
解决方案 - 这是一种享受。
tb.rec-没有 | 用户 ID | 页面 | 字符串(使用 recs 的键直到 recs/page)
122 | aj7894 | p1 | [0]=>100[1]=>400[2]=>056[3]=>129
123 | aj7894 | p2 | [x]99=>[x]240=>[x]7895[x]458=>320
...最多整个页面数组/记录数/所有页面 - 没有数据重复 - 只有 1 列随机存储的 recs 键作为检索
使用带有 WHERE 的 user-id 和 pageno 来为该单个用户和页面提取随机密钥
将字符串转换回数组,并在 SELECT WHERE 查询中使用 implode 中的数组提取特定页面的匹配键记录
re-circ [ user-id & pageno ] 在搜索/视图期间使用 $_GET/POST - 在新视图或新搜索开始时重新初始化
笔记:
- 更好地使用列表进行搜索 - 但需要更多的工作来格式化字符串 - 应该给出最初存储的随机页面结果
数组匹配的问题是每页排序记录;最低的是第一 - 对于页面显示来说不是那么随机
临时表不好 - 因为当脚本被扔回服务器第二次或更长时间时无法访问 - 它已被 mysql 从内存中丢失
php 规则 - 没有脆弱的 cookie 或 java 脚本!
大问题 - 解决了。
重新补偿从您的帖子/答案中获得的帮助。
快乐的时光!