PHP For Each循环的输出是它应该输出的两倍


PHP For Each Loop Outputs twice as much as it should

我正在运行下面的代码,以从MySQL数据库中回显单行的内容,它当前输出的内容似乎是输出的两倍。见下文

$result = mysql_query("SELECT * FROM table WHERE this='1'") or die(mysql_error()); 
$row = mysql_fetch_array($result);
    foreach($row as $key => $field) {
        if($key != 'id' && $key != 'doss' && $key != ''){
            echo "Field name: $key = $field<br />";
            $missing =$missing+$field;
        }
     }

输出为:

Field name: 1 = 0
Field name: go = 0
Field name: 2 = 1
Field name: het = 1
Field name: 3 = 0
Field name: quf = 0
Field name: 4 = 0
Field name: sid = 0
Field name: 5 = 1
Field name: ram = 1
Field name: 6 = 1

mysql_fetch_array将生成一个同时具有数字键和关联键的数组。

默认定义为:

array mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )

如果要获得唯一值,请使用MYSQL_ASSOCMYSQL_NUM

默认情况下,

mysql_fetch_array返回一个同时包含数字索引和关联键的数组。

如果你想要一个或另一个,你可以输入额外的选项:

$row = mysql_fetch_array($result, MYSQL_NUM);

$row = mysql_fetch_array($result, MYSQL_ASSOC);

尝试:

mysql_fetch_array($result, MYSQL_ASSOC);

http://php.net/manual/en/function.mysql-fetch-array.php

BTW,去PDO!:)

mysql_fetch_assoc是您要查找的函数