MySQL fetch array add duplicate values?

I get the following:

Array ( [0] => 1 [id] => 1 [1] => 778613c4344dbc9565c359c1154c6a18 [session] => 778613c4344dbc9565c359c1154c6a18 [2] => fn [first_name] => fn [3] => ln [last_name] => ln [4] => un [username] => un [5] => 016e6128e8ca9dda1b310c364d9b622c [password] => 016e6128e8ca9dda1b310c364d9b622c [6] => address [email] => address [7] => 100 [permission] => 100 [8] => 10 [year_level] => 10 [9] => [department] => [10] => Sample [campus] => Sample [11] => 0 [logo_url] => 0 ) 

After running this

 $user = mysql_fetch_array(mysql_query("SELECT session FROM users WHERE username='$cookie[username]' AND first_name='$cookie[first_name]' AND last_name='$cookie[last_name]' AND campus='$cookie[campus]' AND id='$cookie[id]'")) 

Any ideas why he duplicates this? Thanks

EDIT: I think the primary key does this. Any idea on how to stop it?

+6
source share
3 answers

If you do not specify the result type as the second parameter, mysql_fetch_array() will default to MYSQL_BOTH (quoting):

Using MYSQL_BOTH (by default), you will get an array with both associative and numeric indices .


If this is not what you want, you should pass a second parameter to this function to indicate what type of results you want.

For example, to get an associative array with column names as keys:

 $result = mysql_query("SELECT session FROM users WHERE username='$cookie[username]' AND first_name='$cookie[first_name]' AND last_name='$cookie[last_name]' AND campus='$cookie[campus]' AND id='$cookie[id]'"); $user = mysql_fetch_array($result, MYSQL_ASSOC); 


As a support:

+13
source

Try the second parameter MYSQL_ASSOC or MYSQL_NUM. MYSQL_BOTH has a default value, returning with both numbers and field keys.

+1
source

Pascal MARTIN has already explained the reason for this.

I will tell you to use mysql_fetch_assoc It will give you only the associated array. The numerical part will not be.

+1
source

Source: https://habr.com/ru/post/908250/


All Articles