我的数组中的double结果(mysql_fetch_array)

时间:2012-03-04 16:47:55

标签: php mysql

好的,我执行此

$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(...)时,我的一切都变了一倍。

1 个答案:

答案 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