mysql_fetch_array返回重复数据
每次我运行mysql_fetch_array时,数组都返回重复值例如,mysql_fetch_array返回重复数据
Array
(
[0] => 1
[row_id] => 1
[1] => some text
[first_field] => some text
[2] => some text
[second_field] => some text
}
但我只想在阵列中单一的结果,我一直在使用
mysql_fetch_array($data, MYSQL_ASSOC);
尝试,但这个没有什么区别。
这是mysql_fetch_array()
的预期功能。如果您不想拥有“重复项”并只有关联数组,请改为使用mysql_fetch_assoc()
。
实施例:
while ($row = mysql_fetch_assoc($data)) { ... }
'mysql_fetch_array($ data,MYSQL_ASSOC);'会和mysql_fetch_assoc完全一样。 – Jocelyn 2012-08-14 17:27:12
@Jocelyn我知道 - 但是 - 没有办法使用'MYSQL_ASSOC'会返回一个数组与OP显示的输出,按照[手动](http://php.net/manual/en/function .mysql取入array.php)。 – newfurniturey 2012-08-14 17:29:13
@ mk_89我刚刚用'mysql_fetch_array($ data,MYSQL_ASSOC)'进行了测试,并且无法复制(即 - 它的工作方式应该如何),所以我无法回答为什么它会在您的情况下失败。尝试使用'mysql_fetch_assoc()',看看是否解决了这个问题。 – newfurniturey 2012-08-14 17:33:52
从manual:
返回字符串数组对应于所提取的行,或 FALSE如果没有更多的行。 返回数组的类型取决于如何定义result_type的 。通过使用MYSQL_BOTH(默认),你将得到一个包含关联和数字索引的数组。使用 MYSQL_ASSOC,你只能得到关联索引(如mysql_fetch_assoc() ),使用MYSQL_NUM,你只能得到数字索引(如 mysql_fetch_row()工作)。
换句话说,由于MYSQL_BOTH是默认值,所以你都返回了。您可以指定MYSQL_ASSOC或MYSQL_NUM来取代关联数组或数组。您也可以使用mysql_fetch_assoc(),它只会返回一个关联数组。
OP已经试过MYSQL_ASSOC。 – Jocelyn 2012-08-14 17:31:10
使用mysql_fetch_assoc()为associtive阵列,或者和mysql_fetch_row用于数字数组
'mysql_fetch_array($ data,MYSQL_ASSOC);'会和mysql_fetch_assoc完全一样。 – Jocelyn 2012-08-14 17:27:43
mysql_fetch_array()
返回含有缔合键(由查询中指定的字段名)和整数位置键的阵列(即,0是第一场,1 ,是第二等等)。这是为了方便用任何一种方法访问数据。
如果你只是想要命名的键,你应该使用mysql_fetch_assoc()
或更好的,因为在这里的每个人都会使用mysqli函数,因为你会使用旧的mysql_ *函数。
'mysql_fetch_array($ data,MYSQL_ASSOC);'会和mysql_fetch_assoc完全一样。 – Jocelyn 2012-08-14 17:29:52
@Jocelyn是的。我不明白downvote,因为大多数熟悉使用旧mysql_ *函数一段时间的开发人员通常会使用mysql_fetch_assoc,而不必担心在函数调用中设置正确的标志。 – 2012-08-14 17:31:40
mysql_fetch_array将返回的结果集作为对查询执行的响应返回为关联数值和数值数组。 要将resultset作为关联数组返回,您需要使用mysql_fetch_assoc函数。 要将resultset返回为数组数组,需要使用mysql_fetch_row函数。
mysqli_fetch_array($result, MYSQL_ASSOC)
这对我而言很合适,如上面建议的mysql_fetch_assoc
,在PHP5.5中现在已经弃用了。
inb4,PDO或mysqli – 2012-08-14 17:24:04
显示您的查询和表格结构。 – Jocelyn 2012-08-14 17:24:32
请不要使用'mysql'扩展名!最好使用PDO或MySQLi。 – ComFreek 2012-08-14 17:25:54