Rumah  >  Artikel  >  pangkalan data  >  Mengapa Saya Mendapat Nilai Pendua Apabila Menggunakan mysql_fetch_array?

Mengapa Saya Mendapat Nilai Pendua Apabila Menggunakan mysql_fetch_array?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-02 05:01:30766semak imbas

Why Do I Get Duplicate Values When Using mysql_fetch_array?

Nilai Pendua dalam Array Dikembalikan oleh mysql_fetch_array

Soalan:

Apabila mengambil data daripada jadual MySQL menggunakan mysql_fetch_fetch nilai sedang dikembalikan, menghasilkan output pendua apabila diulang melalui tatasusunan.

Contoh:

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

Mengapa Ini Berlaku?

Fungsi mysql_fetch_array mengembalikan tatasusunan yang mengandungi kedua-dua indeks bersekutu dan angka secara lalai. Ini bermakna kedua-dua nama lajur dan indeks lajur (0, 1, 2, dsb.) digunakan sebagai kunci.

Penyelesaian:

Untuk mengelakkan nilai pendua , gunakan parameter kedua mysql_fetch_array untuk menentukan jenis pengindeksan yang anda mahukan. Anda boleh memilih antara indeks berangka sahaja, indeks bersekutu sahaja, atau kedua-duanya.

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

Sebagai alternatif, anda boleh menggunakan fungsi mysql_fetch_row dan mysql_fetch_assoc untuk mengambil data dengan hanya indeks berangka atau indeks bersekutu.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Nilai Pendua Apabila Menggunakan mysql_fetch_array?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn