首頁  >  文章  >  資料庫  >  為什麼使用 mysql_fetch_array 時會得到重複的值?

為什麼使用 mysql_fetch_array 時會得到重複的值?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-02 05:01:30796瀏覽

Why Do I Get Duplicate Values When Using mysql_fetch_array?

mysql_fetch_array 傳回的陣列中存在重複值

問題:

使用mysql_fSQL double傳回值,導致迭代數組時出現重複輸出。

例如:

<code class="php"><?php
$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($table as $table_var)
{
    echo "<td>" . $table_var . "</td>";
} 
// Output:
// "1 1 1 1 jordan jordan 9108121544 9108121544  testEmail testEmail testAddress testAddress testCounty  testCounty"</code>

為什麼會發生這種情況?

mysql_fetch_array 函數預設傳回一個包含關聯索引和數字索引的陣列。這意味著列名和列索引(0、1、2等)都用作鍵。

解決方案:

防止重複值,使用 mysql_fetch_array 的第二個參數來指定您想要哪種類型的索引。您可以選擇僅數字索引、僅關聯索引或兩者。

<code class="php">// Numerical indexes only
$query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); 

// Associative indexes only
$query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC); </code>

或者,您可以使用 mysql_fetch_row 和 mysql_fetch_assoc 函數分別取得僅包含數字索引或關聯索引的資料。

<code class="php">// Numerical indexes only
$query_result_array = mysql_fetch_row($query_result); 

// Associative indexes only
$query_result_array = mysql_fetch_assoc($query_result); </code>

以上是為什麼使用 mysql_fetch_array 時會得到重複的值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn