检索特定的mysql结果行

时间:2011-12-18 05:40:41

标签: php mysql function

我想选择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陷入无限循环。

关于我需要的功能的任何想法/解决问题的建议? /我做错了什么?

1 个答案:

答案 0 :(得分:2)

只需选择随机顺序,您已经拥有了所要求的内容:

$query = sprintf("SELECT * FROM places WHERE box = %d ORDER BY RAND() LIMIT 0, %d"
                     , 1, $wanted);