PHP MySQL select random rows

前端 未结 6 1502
深忆病人
深忆病人 2021-02-15 16:47

I have a problem selecting 6 random friends

This is the query I\'ve got so far:

$result = num_rows(\"SELECT * FROM friends WHERE member_id = \'\".$_S         


        
6条回答
  •  南旧
    南旧 (楼主)
    2021-02-15 17:33

    The best way I've found to select any number of random records is with OFFSET in the query.

    Let's say you want 6 random records, so I'll borrow from an answer above and count the total number of friends in the database.

    $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
    

    Now we'll get the 6 random records out of the total above (hopefully it's > 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
    }
    

    Using OFFSET may not be the best or most efficient, but it's worked for me on large databases without bogging them down.

提交回复
热议问题