2011-10-17 128 views
-1

我正在一个网站上匹配用户,就像任何交友网站一样。除此之外,我希望一次随机显示1个用户匹配项。就像他们只需点击下一个,直到遇到他们喜欢的结果。我知道如何以列表格式查询结果,但是我需要用什么样的代码随机显示他们的比赛档案,随机选择一个(基于比赛分数),一次一个?我正在使用PHP。谢谢!如果你甚至告诉我要查找什么,这将是伟大的!随机结果显示PHP

+0

你能给我们一些启发你的数据库? – TJHeuvel

+0

我正在使用mySQL,你想要表结构吗? – user999340

+0

我假设你在数据库中存储了“匹配分数”,你能否更具体地确定你想要的? “根据马克分数随机选择”,你究竟是什么意思。 – TJHeuvel

回答

0

我想你有一个“复杂”的MySQL请求..你可以只添加一个ORDER BY RAND(),并使用ajax来处理该列表。

0
SELECT ... 
FROM yourtable 
WHERE .... search conditions ... 
ORDER BY rand() 
LIMIT 1 

是最简单的,但最有可能的最低效的这样做的方法。每次点击下一个时,重新运行查询,您会得到一个随机的匹配项。请注意,这不会阻止重复出现,如果只有很少的匹配,这很可能会出现。

1

不应使用MySQL的ORDER BY RAND()子句,因为它的速度慢,最好是像这样的:从型材

  1. 选择MAX(ID)
  2. 选择配置文件*从配置文件,其中profile.id = mt_rand(0,MAX_ID)

将更加获得更好的性能

+1

然而,你会认为id的增加是完美的,并且没有差距。例如,当您删除用户时,情况并非如此。 – TJHeuvel

+0

为什么不会如此?您使用循环来查找存在的id ...即使您有很多“id洞”,您也可以将所有id选择到某个[temporary]表中并从那里随机获取 – user973254

+0

第二个查询不会产生任何结果一个'洞'。 – TJHeuvel