phpでmysqlレコードをランダムに取得するには、mysqlのselect rand関数で取得したデータをmysql_queryを直接実行して読み出すことができます。具体的な例を紹介します。
方法 1:
コードは次のとおりです | コードをコピー |
select * from tablename order by rand() 制限 1 |
ここでは、ランダムに選択するレコードの数に制限後の値を変更します。
方法 2:
コードは次のとおりです | コードをコピー |
$query= "count FROM が推奨するように SELECT count(*)"; $query = "SELECT * FROM recommendsn 制限 ".$se_pos.",".$length; |
例 3
xyj という名前のデータベースがあり、その中に name という名前のフィールドがあるとします。具体的な手順は次のとおりです。
コードをコピー | |
$db = mysql_connect("localhost", "root"); mysql_select_db("xyj",$db); $result=mysql_query("SELECT * FROM obj",$db); $max_num=mysql_num_rows($result);//データベース内のレコード数を取得します srand((double)microtime()*10000000); //乱数シードを生成します。 $se_pos=rand(0, $max_num-1); //0 から最大レコード数までの乱数を取得します $length=30; // 合計で取得するレコード数を設定します //以下は指定した数のレコードを取得します。 $result_lim=mysql_query("オブジェクト制限 $se_pos,$length から * を選択",$db); $myrow_lim=mysql_fetch_array($result_lim); printf("%sn", $se_pos);//ランダムに取得したレコード番号を表示します printf("%sn", $myrow_lim["name"]);//ランダムに取得したレコードの名前フィールドを表示します
|