gpt4 book ai didi

php - Mysql:按兰德订购一次

转载 作者:行者123 更新时间:2023-11-29 04:48:54 25 4
gpt4 key购买 nike

我需要按兰德下订单,但我不希望它在每次刷新时都发生变化,我只需要一个随机数,这有意义吗?

这是我的代码:

function findSimilarByTag($gid,$limit=5) {
$gid=$this->quotesmart($gid);
$limit=$this->quotesmart($limit); //yes, this is senseless

$db =& JFactory::getDBO();
$query ="SELECT count( a.cid ) , a.gid, b.* \r\n";
$query.="FROM `#__yfl_game2cat` a \r\n";
$query.="JOIN #__yfl_game b ON a.gid = b.id
WHERE a.cid
IN (
SELECT cid
FROM #__yfl_game2cat
WHERE gid = '$gid'
)
AND a.gid != '$gid'
GROUP BY a.gid
ORDER BY rand()
LIMIT ".$limit;

$db->setQuery($query);
$games=$db->loadObjectList();
if($db->getErrorMsg()) $games=$db->getErrorMsg();
return $games;

最佳答案

让所有用户看到相同的随机顺序

如果您希望每个人都使用相同的随机顺序,只需添加另一列,在其中放入随机生成的数字并按该列排序。

每个用户:

如果结果集相同(即没有其他数据更改),您可以将整个结果集存储在 session 中。

session_start();// top of all php files that need to use session

if (isset($_SESSION['findSimilarByTag'])) $rs=$_SESSION['findSimilarByTag'];
else $rs=$_SESSION['findSimilarByTag']=findSimilarByTag($gid);
// ... go ahead and use $rs

如果结果中的其他数据发生变化,或者该结果集会包含大量数据,您可以存储唯一 ID 并使用 ORDER BY FIELD(fieldname, 1,2,3...) 而不是 ORDER BY RAND() 如果该 session 值存在

关于php - Mysql:按兰德订购一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14303432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com