1

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

4 回答 4

8

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

默认定义是:

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

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

于 2012-09-11T16:46:01.460 回答
3

mysql_fetch_array默认情况下返回一个包含数字索引和关联键的数组。

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

$row = mysql_fetch_array($result, MYSQL_NUM);

或者

$row = mysql_fetch_array($result, MYSQL_ASSOC);
于 2012-09-11T16:47:33.730 回答
1

尝试:

mysql_fetch_array($result, MYSQL_ASSOC);

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

顺便说一句,去 PDO!:)

于 2012-09-11T16:48:46.817 回答
0

mysql_fetch_assoc是你要找的功能

于 2012-09-11T16:46:43.083 回答