我在选择6个随机朋友时遇到问题
这是我到目前为止的查询:
$result = num_rows("SELECT * FROM friends WHERE member_id = '".$_SESSION['userid']."'");
if($result >= 6) {
$f_num = 6;
} else {
$f_num = $result;
}
for($i = 1; $i <= $f_num; $i++) {
$q_get_member_friends = mysql_query("SELECT * FROM friends WHERE member_id = '".$_SESSION['userid']."' ORDER BY rand() LIMIT 1");
$r_get_member_friends = mysql_fetch_array($q_get_member_friends);
echo $r_get_member_friends['friend_with'];
}
Run Code Online (Sandbox Code Playgroud)
如果登录用户有多于或等于6个朋友,我想选择6个随机朋友
坚持这一段时间了:/
谢谢你的帮助 :)
OMG*_*ies 17
如果您使用:
SELECT *
FROM friends
WHERE member_id = '".$_SESSION['userid']."'
ORDER BY rand()
LIMIT 6
Run Code Online (Sandbox Code Playgroud)
如果此人只有3个朋友,则查询将仅显示这三个 - 这并不意味着查询将始终返回六行.
小智 5
我发现选择任意数量的随机记录的最佳方法是在查询中使用OFFSET.
假设你想要6个随机记录,所以我将借用上面的答案并计算数据库中朋友的总数.
$sql = mysql_query("SELECT COUNT(*) AS total FROM friends WHERE member_id='". $_SESSION['userid'] ."'");
$get_count = mysql_fetch_array($sql); // Fetch the results
$numfriends = $get_count['total']; // We've gotten the total number
Run Code Online (Sandbox Code Playgroud)
现在我们将从上面的总数中得到6个随机记录(希望它> 6),
$query = mysql_query("SELECT * FROM friends WHERE member_id='". $_SESSION['userid'] ."' LIMIT 6 OFFSET " . (rand(0, $numFriends));
while ($rows = mysql_fetch_array($query))
{
/// show your $rows here
}
Run Code Online (Sandbox Code Playgroud)
使用OFFSET可能不是最好的或最有效的,但它在大型数据库上对我有用,而不会让它们陷入困境.
| 归档时间: |
|
| 查看次数: |
28451 次 |
| 最近记录: |