Najlepszym sposobem, jaki znalazłem, aby wybrać dowolną liczbę losowych rekordów, jest użycie PRZESUNIĘCIA w zapytaniu.
Powiedzmy, że chcesz 6 losowych rekordów, więc pożyczę z powyższej odpowiedzi i policzę całkowitą liczbę znajomych w bazie danych.
$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
Teraz otrzymamy 6 losowych rekordów z powyższej sumy (miejmy nadzieję, że jest to> 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
}
Używanie OFFSETu może nie jest najlepsze ani najbardziej wydajne, ale dla mnie działało na dużych bazach danych bez ich ugrzęźnięcia.