使用php从mysql db中选择随机唯一记录

时间:2012-05-09 14:40:13

标签: php mysql

我正在尝试从random数据库中获取mysql个记录,但是当我在输出中复制它们时,我需要记录也是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>';
}


?>

我该怎么做?

1 个答案:

答案 0 :(得分:2)

你拥有for循环中的所有代码,包括运行查询的代码;你&#34;提取&#34;来自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>';
}
?>