2016-11-12 47 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