PHP For Each Loop输出的两倍

时间:2012-09-11 16:44:15

标签: php mysql

我正在运行以下代码来回显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

4 个答案:

答案 0 :(得分:8)

mysql_fetch_array将生成一个包含数字键和关联键的数组。

默认定义是:

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

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

答案 1 :(得分:3)

默认情况下,

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

如果你想要其中一个,你可以传递额外的选项:

$row = mysql_fetch_array($result, MYSQL_NUM);

$row = mysql_fetch_array($result, MYSQL_ASSOC);

答案 2 :(得分:1)

尝试:

mysql_fetch_array($result, MYSQL_ASSOC);

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

顺便说一下,去PDO吧! :)

答案 3 :(得分:0)

mysql_fetch_assoc是您正在寻找的功能