Хорошо, я выполняю это
$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!; }
и я делаю foreach
foreach($table as $table_var) { echo "<td>" . $table_var . "</td>"; }
и тем самым я получаю двойной выход … »1 1 1 1 jordan jordan 9108121544 9108121544 testEmail testEmail testAddress testAddress testCounty testCounty"
это ниже результат print_r
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 )
Информация, которую я имею в базе данных: id => 1, department_id => 1 и т. Д. Мой вопрос: почему я получаю двойную обратную связь (я не знаю, как ее называть), 0 = id, 1 = department_id, 2 = имя и т. д.
и когда я делаю foreach (…), я получаю все в два раза.
Из руководства :
mysql_fetch_array – Получить строку результатов как ассоциативный массив, числовой массив или оба
По умолчанию mysql_fetch_array
предоставляет как ассоциативные, так и числовые индексы. Вы не хотите этого. Вы можете ограничить его вторым параметром:
$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
Вы также можете использовать mysql_fetch_row
только для получения числовых ключей или mysql_fetch_assoc
чтобы получать ассоциативные ключи.
$query_result_array = mysql_fetch_row($query_result); // numeric keys only $query_result_array = mysql_fetch_assoc($query_result); // associative keys only