Duplicate results in my array (mysql_fetch_array)

Ok i do it

$table = get_personel_table(1); function get_personel_table($id) { global $connection; $query = "SELECT * "; $query .= "FROM employees "; $query .= "WHERE id=" . $id . " "; $query .= "ORDER BY id ASC"; $query_result = mysql_query( $query , $connection ); confirm_query($query_result); $query_result_array = mysql_fetch_array($query_result); return $query_result_array; // returns associative array!; } 

and i do foreach

 foreach($table as $table_var) { echo "<td>" . $table_var . "</td>"; } 

and thus I get a double output ... "1 1 1 1 jordan jordan 9108121544 9108121544 testEmail testEmail testAddress testAddress testCounty testCounty"

this is below print_r result

  Array ( [0] => 1 [id] => 1 [1] => 1 [department_id] => 1 [2] => jordan [name] => jordan [3] => 9108121544 [EGN] => 9108121544 [4] => testEmail [email] => testEmail [5] => testAddress [address] => testAddress [6] => testCounty [country] => testCounty ) 

The information I have in the database is: id => 1, department_id => 1, etc .... My question is why I get double feedback (I don’t know what to call it), 0 = id, 1 = department_id, 2 = name, etc.

and when I do foreach (...), I get everything twice.

+4
source share
1 answer

From the manual :

mysql_fetch_array - select the result string as an associative array, a numeric array, or both

By default, mysql_fetch_array provides both associative and numeric indexes. You do not want this. You can limit it to the second parameter:

 $query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); // numeric keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC); // associative keys only 

You can also use mysql_fetch_row only to get numeric keys or mysql_fetch_assoc only to get associative keys.

 $query_result_array = mysql_fetch_row($query_result); // numeric keys only $query_result_array = mysql_fetch_assoc($query_result); // associative keys only 
+15
source

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


All Articles