2016-11-12 8 views
1

こんにちは私はテーブルの行の量を返し、1と行の量の間の乱数を返します。私は乱数に対応するMySQLテーブル内の行を取得できるようにしたい。だから数字が2なら2番目の行を取得したい。ここ は、これまでの私のコードです: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

によって配列からランダムなものを選択することができますか?次に、クエリ内でORDER BY RAND()を使用し、LIMIT 1を使用することができます。これは、 - 驚き - ランダムにソートし、1つのデータセットのみを返します。

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

したがって、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を取得し、あなたがあなたのテーブルのうちの1つのランダムな行をしたいarray_rand

関連する問題