我想选择MySQL表中的所有条目,并随机显示其中的一些条目。 这是我的代码:
include 'connectdb.php';
$query = "SELECT * FROM places WHERE box = 1";
$result = mysql_query($query);
$total = mysql_affected_rows();
$total = $total - 1;
$wanted = 2; // the number of entries i want to display
if( $wanted > $total ) {
die("Not enough places yet!");
}
$toshow = array();
for( $i = 0; $i < $wanted ; $i++ ) {
$temp = rand( 0 , $total );
while( in_array( $temp , $toshow ) ) {
$temp = rand( 0 , $total );
}
$toshow[$i] = $temp;
}
foreach( $toshow as $add ){
$row = // function needed here //
$name = $row['name'];
$telephone = $row['telno'];
//get rest of row and include a view to show the entry
}
我也尝试过使用:
mysql_result( $result , $add );
但这似乎没有帮助。 MySQL连接工作,for循环返回一个只存在一次的数字数组,这样我就不会一直显示相同的帖子,而且我添加了die,因为如果我们需要更多的帖子而不是数字,那么ges陷入无限循环。
关于我需要的功能的任何想法/解决问题的建议? /我做错了什么?
答案 0 :(得分:2)
只需选择随机顺序,您已经拥有了所要求的内容:
$query = sprintf("SELECT * FROM places WHERE box = %d ORDER BY RAND() LIMIT 0, %d"
, 1, $wanted);