2012-05-09 96 views
2

我想從mysql數據庫中獲取random記錄,它工作但我需要的記錄也是unique當我抓取他們,因爲他們複製在輸出上,這裏是我的代碼:從MySQL數據庫中選擇隨機唯一的記錄使用php

<? 

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>'; 
} 


?> 

我該怎麼做?

+0

寫在外面SQL查詢的循環 – 2012-05-09 14:44:14

回答

2

您擁有for循環中的所有代碼,包括運行查詢的代碼;你從數據庫中「提取」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>'; 
} 
?> 
+1

謝謝:),我只是弄清楚,之前的10秒: ) , 感謝您的時間 。 –

+0

沒問題,很高興幫助:) –