php随机输出记录集中的一条记录

来源:百度知道 编辑:UC知道 时间:2024/06/24 09:52:18
<?php
$dbhost = 'localhost';
$dbuser = 'tianye52_liuso'; //你的mysql用户名
$dbpass = '2056800'; //你的mysql密码
$dbname = 'tianye52_ls'; //你的mysql库名
$link=mysql_connect($dbhost,$dbuser,$dbpass);
mysql_query("SET NAMES 'GBK'");
mysql_select_db($dbname);
$res=mysql_query("select topic_title,topic_id from bb_topics where forum_id=23 order by topic_id desc limit 10");
while($row=mysql_fetch_array($res)){
echo "<a href='bbpress/topic.php?id=$row[topic_id]'>".$row[topic_title]."</br>"."</a>";
}
?>

问: 以上代码可以输出记录集中的前10条记录,如果想实现随机输出记录集中的某一条记录,应该怎样修改代码,

比如:记录集查询到以下记录:
46个不可不知的健康常识
美女必知的30条美容小秘方
震惊世界的中国秘方——留着有用!!!
男性为何容易比女性秃头?
春季多晒三个部位有益健康
标准身材要小心的饮食误区

要实现,代码每执行一次,就输出其中的一条.而且ID是随机产生的.

如果要在这前10条里面随机显示一条,可以存到数组里面,然后随机输出,例如:
$rows=array();
while($row=mysql_fetch_array($res)){
$rows[]=$row;
}
$n=rand(0,9);
echo "<a href='bbpress/topic.php?id={$rows[$n][topic_id]}'>".$rows[$n][topic_title]."</br>"."</a>";

如果希望直接在数据库里面随机提取一条记录,那么方法是修改SQL:
select * from ... order by rand() limit 1

如果要在这前10条里面随机显示一条,可以存到数组里面,然后随机输出,例如:
$rows=array();
while($row=mysql_fetch_array($res)){
$rows[]=$row;
}
$n=rand(0,9);
echo "<a href='bbpress/topic.php?id={$rows[$n][topic_id]}'>".$rows[$n][topic_title]."</br>"."</a>";

如果希望直接在数据库里面随机提取一条记录,那么方法是修改SQL:
select * from ... order by rand() limit 1