Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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 while循环成问题_Php_Mysql - Fatal编程技术网

php while循环成问题

php while循环成问题,php,mysql,Php,Mysql,我的php中有这段代码,我想更好地理解它: while($row = mysql_fetch_array($result)){ echo $row['name']; } 我怎样才能把它变成for循环?我试过了,但我不知道如何引用我想要的正确行…$row[$I]['name']不起作用 编辑-目标是反转输出的回声。因此,结果是另一种方式…我只知道如何使用$I-–对for循环执行此操作您是否尝试过类似的操作: for ($row = mysql_fetch_array($result); $r

我的php中有这段代码,我想更好地理解它:

while($row = mysql_fetch_array($result)){
 echo $row['name'];
 }
我怎样才能把它变成for循环?我试过了,但我不知道如何引用我想要的正确行…$row[$I]['name']不起作用


编辑-目标是反转输出的回声。因此,结果是另一种方式…我只知道如何使用$I-–

对for循环执行此操作您是否尝试过类似的操作:

for ($row = mysql_fetch_array($result); $row; $row = mysql_fetch_array($result)) {
     echo $row['name'];
} 
在这种方法中,您不需要使用$i变量

for(;$row = mysql_fetch_array($result);) {
    echo $row['name'];
}
但是为什么呢

for (;;) {
    if (!($row = mysql_fetch_array($result))) {
        break;
    }
    echo $row['name'];
}
说真的,这里不能使用for循环。mysql_fetch_数组只提供下一行,只要有行。正如您正确地说的,没有索引可供参考,因此在索引上循环没有太多用途


目标是反转输出的回声


您可以在查询中使用ORDER BY。。。DESC/ASC子句。

使用mysql\u num\u rows检索行数,然后可以使用for循环:

现在,如果确实需要,您可以使用for循环访问例如$row[0]['name']

编辑:


我们的目标是扭转市场的回响 输出

要做到这一点,您可以使用mysq_fetch_assoc和上面的while循环将所有行提取到一个数组中来构建数组,使用array_reverse来反转顺序,然后使用foreach循环来回送元素。不过,不需要for循环

while构造中的技巧是,当赋值“失败”时,迭代停止,即返回false,因为没有更多的行,因此赋值也返回false

要使用for而不是这个while构造,可以使用mysql\u fetch\u数组来从结果集中获取特定行:

for ($i=0, $n=mysql_num_rows($result); $i < $n; $i++) {
    $row = mysql_result($result, $i);
}

您必须使用数据库设置顺序

按字段描述从表顺序中选择*


这几乎是不可能的…为什么要这样做?目标是反转输出的回声。因此,结果是另一种方式……我只知道如何使用$I对for循环执行此操作—反转输出的最简单方法是在sql查询中使用ORDER BY(带或不带DESC)
$rows = array();
while($row = mysql_fetch_array($result))
{
  $rows[] = $row;
}
for ($i=0, $n=mysql_num_rows($result); $i < $n; $i++) {
    $row = mysql_result($result, $i);
}