every time i run mysql_fetch_array an array is returned with duplicate values e.g.
Array
(
[0] => 1
[row_id] => 1
[1] => some text
[first_field] => some text
[2] => some text
[second_field] => some text
}
but I only want single results in the array, I have tried using
mysql_fetch_array($data, MYSQL_ASSOC);
But this makes no difference.
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)) { ... }
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.
Use mysql_fetch_assoc() for associtive array, or mysql_fetch_row for a numeric array
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With