MySQL Order By Rand()给出1个结果而不是24

时间:2015-11-02 17:03:41

标签: php mysql random

我想显示24个唯一身份证,但他只给我一个: 这是我的php

    <?php $sql = "SELECT id 
                          FROM 15players 
                          ORDER BY RAND() 
                          LIMIT 24";    $result = mysql_query($sql) or die('Query failed: ' . mysql_error());        
$row = mysql_fetch_array($result);
echo $row['id'];         ?>

但是如果我在phpmyadmin中执行这个SQL, 它返回我24个id 那么我做错了什么?

编辑: 得到了正确的答案!

<?php $sql = "SELECT id 
                      FROM 15players 
                      ORDER BY RAND() 
                      LIMIT 0,24";
    $result = mysql_query($sql) or die('Query failed: ' . mysql_error());
         while($row = mysql_fetch_array($result)) {
         echo $row['id'];
         }
         ?>

3 个答案:

答案 0 :(得分:1)

mysql_fetch_array只返回您需要遍历结果的1行。

while($row = mysql_fetch_array($result)) {
    echo $row['id'];
}

答案 1 :(得分:0)

如果通过查询获取多个结果,则需要对其进行迭代。

<?php 
$sql = "SELECT id 
FROM 15players 
ORDER BY RAND() 
LIMIT 24";    $result = mysql_query($sql) or die('Query failed: ' . mysql_error());        
while($row = mysql_fetch_array($result))
{
echo $row['id'];
}         
?>

不推荐使用 mysql _ * ,开始使用PDO。

答案 2 :(得分:0)

mysql_fetch_array一次只能获得一行。您需要遍历所有结果。

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
     echo $row['id']. '<br>';
}

你应该使用mysqli或PDO。 mysql_在PHP 5.5.0中已弃用,在PHP 7.0.0中已被删除。