使用 PHP 从 MySQL 数据库中选择随机唯一记录


select random unique records from mysql db using php

我正在尝试从mysql数据库中获取random记录,它有效,但是当我获取记录时,我也需要unique记录,因为它们在输出上重复,这是我的代码:

    <?
for ($counter = 1; $counter <=5;$counter++) 
{
$randomPostSelect = mysql_query("SELECT DISTINCT * FROM beventreservation WHERE (beventStatus='online' OR beventStatus='soldout') ORDER BY RAND() LIMIT 5") or die(mysql_error());
$fetchPosts = mysql_fetch_array($randomPostSelect) or die(mysql_error());

echo '<li><a href="reservation.php?rev='.$fetchPosts['eventId'].'">'.$fetchPosts['eventTitle'].'</a></li>';
echo '</br>';
}

?>

我该怎么做?

您将所有代码都包含在 for 循环中,包括运行查询的代码;您从 db 中"提取"5 行,但只获取第一行,然后重复 5 次。相反,您应该运行一次查询,然后循环结果,直到到达results末尾:

<?
$randomPostSelect = mysql_query("SELECT DISTINCT * FROM beventreservation 
        WHERE (beventStatus='online' OR beventStatus='soldout') ORDER BY RAND() LIMIT 5")
    or die(mysql_error());
while ($fetchPosts = mysql_fetch_array($randomPostSelect))
{
    echo '<li><a href="reservation.php?rev='.$fetchPosts['eventId'].'">'.$fetchPosts['eventTitle']
        .'</a </li>';
    echo '</br>';
}
?>