我正在尝试从数据库中填充数据的数组中获取随机值。我正在从数据库中选择一些产品并将它们显示在首页上,但每次重新加载页面时我都需要显示不同的(随机)产品。
$row = mysql_query("SELECT * FROM anunt WHERE lichidareStoc = 0 ORDER BY anuntID DESC") or die(mysql_error());
$row2 = mysql_fetch_assoc($row);
所以,我认为$ row2现在是一个数组,并且拥有我之前从数据库中选择的所有信息。如何从该阵列中选择一个随机的“行”?
由于
答案 0 :(得分:2)
您正在寻找array_rand
,请参阅:http://php.net/manual/en/function.array-rand.php
示例:
$rand_key = array_rand($row2);
echo $row2[$rand_key]; // your random
您也可以直接从数据库中选择一个随机行:
SELECT *
FROM anunt
WHERE lichidareStoc = 0
ORDER BY rand()
LIMIT 1
但请注意,这会降低您的表现,尤其是在较大的桌子上。
旁注:不推荐使用mysql_ *函数,而是使用mysqli_ *。
答案 1 :(得分:0)
如果要选择随机条目,可以执行以下操作:
$myRows=array();
$row = mysql_query("SELECT * FROM anunt WHERE lichidareStoc = 0 ORDER BY anuntID DESC") or die(mysql_error());
while($row2 = mysql_fetch_assoc($row))
$myRows[]=$row2;
$randomEntry=$myRows[array_rand($myRows)];
如果你想要一个该条目的随机字段,你应该像Bernhard Poiss指出的那样使用array_rand。
$row = mysql_query("SELECT * FROM anunt WHERE lichidareStoc = 0 ORDER BY anuntID DESC") or die(mysql_error());
$row2 = mysql_fetch_assoc($row);
$randomField=$row2[array_rand($row2)];
答案 2 :(得分:0)
首先,您需要填充结果数组
$row = mysql_query("SELECT * FROM anunt WHERE lichidareStoc = 0 ORDER BY anuntID DESC") or die(mysql_error());
$rows = array();
while($rec = mysql_fetch_assoc($row)){
$rows[] = $rec;
}
然后您可以使用array_rand
选择随机项$random = $rows[array_rand($rows)];