mysql_fetch_array returns duplicate data

Solution 1:

This is the intended functionality of mysql_fetch_array(). If you want to not have the "duplicates" and just have the associative-array, use mysql_fetch_assoc() instead.

Example:

while ($row = mysql_fetch_assoc($data)) { ... }

Solution 2:

mysql_fetch_array returns resultset returned as as response to query execution as both associative and numeric arrays. For returning resultset as associative array you need to use mysql_fetch_assoc function. For returning resultset as numeric array you need to use mysql_fetch_row function.

Solution 3:

Use mysql_fetch_assoc() for associtive array, or mysql_fetch_row for a numeric array

Solution 4:

mysql_fetch_array() returns an array containing both associative keys (the field names specified by queries) and integer position key (i.e. 0 is first field, 1, is second, etc.). This is for convenience in accessing the data by either method.

if you only want the named keys, you should use mysql_fetch_assoc() or better yet, use the mysqli functions as everyone on here will lambast you for using the old mysql_* functions.