好吧,我执行这个
$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同时提供关联索引和数字索引。你不要这个 您可以使用第二个参数来限制它:
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仅获取关联键。
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