Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL Order By Rand()给出1个结果,而不是24个_Php_Mysql_Random - Fatal编程技术网

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

Php MySQL Order By Rand()给出1个结果,而不是24个,php,mysql,random,Php,Mysql,Random,我想显示24个唯一id,但他只给我1个: 这是我的php <?php $sql = "SELECT id FROM 15players ORDER BY RAND() LIMIT 24"; $result = mysql_query($sql) or die('Query failed: ' . mysql_erro

我想显示24个唯一id,但他只给我1个: 这是我的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个身份证 那么我做错了什么

编辑: 得到了正确的答案

<?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'];
         }
         ?>

mysql\u fetch\u array
只返回需要循环遍历结果的一行

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

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

<?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。

mysql\\\\\\\\数组一次只能获取一行。您需要循环查看所有结果

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
     echo $row['id']. '<br>';
}
while($row=mysql\u fetch\u数组($result,mysql\u NUM)){
echo$row['id']。
; }

您应该使用mysqli或PDO。mysql在PHP5.5.0中被弃用,在PHP7.0.0中被删除

您只获取一个结果
$row=mysql\u fetch\u array($result)因此,您当然只会显示一个id。。。。在($row=mysql_fetch_array($result)){echo$row['id'];}的同时迭代整个resultset,依次获取
但是现在是2015年了,是时候进入MySQLi或PDO的世界了,而不是旧世界了,11月12日之后最新的PHP中将不存在已弃用的MySQL扩展。请不要再使用
MySQL.*
。如果不是PDO,至少使用
mysqli.*
。永远不要写
orderbyrand()
。谢谢:D如何在每个“id”之间获得
echo$row['id'],“
我真的建议学习一些PHP基础知识