好的,我执行此
$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 ja jal 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 =&gt; 1,department_id =&gt; 1,依此类推...... 我的问题是为什么我得到双重反馈(我不知道如何调用它),0 = id,1 = department_id,2 = name等等。
当我做foreach(...)时,我的一切都变了一倍。
答案 0 :(得分:17)
来自the manual:
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