我有这个代码,我希望在我的网站上创建一个“引号区域”。我希望它每次都从我的数据库中选择3个随机引号。我知道函数rand(min,max)
,但是如何使用它从查询中选择确切的行?
require 'DB.php';
$link = mysql_connect('localhost', 'root', '430123');
$db = mysql_select_db('bakery', $link);
$result = mysql_query('SELECT * FROM quotes');
我可以使用for循环并使用mysql_fetch_row()
来表示rand()
中的数字是多少,但这可能有点效率不高?
答案 0 :(得分:4)
要仅获取第4行,请使用limit offset, number_of_records
SELECT * FROM quotes
order by rand()
limit 3, 1
答案 1 :(得分:0)
好吧,您可以选择所有引号然后使用函数array_rand()来选择随机引号
答案 2 :(得分:0)
您可以使用ORDER BY rand()。
例如。
$result = mysql_query('SELECT * FROM quotes ORDER BY rand() limit 3');
答案 3 :(得分:0)
这是一个函数,它返回给定源数组的$ count元素数组。您必须添加对避免重复引号的支持,但这符合您的要求。
<?php
require 'DB.php';
$link = mysql_connect('localhost', 'root', '430123');
$db = mysql_select_db('bakery', $link);
$result = mysql_query('SELECT * FROM quotes');
$row = mysql_fetch_array($result);
get_quotes($row,3);
function get_quotes($source,$count) {
$quotes = array();
for ($i = 0;$i<$count;$i++) {
$seed = rand(0,sizeof($source)-1);
$quotes[] = $source[$seed];
}
return $quotes;
}
也许在查询中这样做会更好,但我不认为这就是你要求的。