2016-11-12 38 views
1

您好,我有以下代碼,它返回表中的行數,並選擇1和行數之間的隨機數。我希望能夠獲得與隨機數對應的MySQL表中的行。所以如果這個數字是兩個,我想要得到第二行。 這是到目前爲止我的代碼:PHP和MYSQL得到隨機行

$query = mysql_query("SELECT count(*) as total from videos"); 
$result = mysql_fetch_array($query); 
$TotalCount = $result['total']; 

$RandRow = mt_rand(1,$TotalCount); 

我有一個ID列,但所有的ID是不是爲了它是這樣的,例如:4,27,43,2,18,109,所以我不能使用它。我如何在與我的隨機數對應的表格中獲得一行?

回答

1

從數組中選擇一個隨機你想一個隨機行了你的表的,對不對?然後你可以在你的查詢和限制1中使用ORDER BY RAND()。它隨機排序 - 意外 - 只返回一個數據集。

例如

$query = mysql_query("SELECT * FROM videos ORDER BY RAND() LIMIT 1"); 

所以你只需要做一個查詢。

0
$query = mysql_query("SELECT id from videos"); 
$ids = array() 
While($row=mysql_fetch_array($query)){ 
$ids[] =$row['id'] 
} 
$RandRow = array_rand($ids,1); 

您可以獲取所有行ID作爲一個數組,並array_rand