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

Mengapa Saya Mendapat Nilai Pendua Apabila Menggunakan mysql_fetch_array?

Mary-Kate Olsen
Lepaskan: 2024-11-02 05:01:30
asal
913 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan