Rumah  >  Artikel  >  pangkalan data  >  Mengapa gelung foreach saya memaparkan data berganda apabila menggunakan `mysql_fetch_array`?

Mengapa gelung foreach saya memaparkan data berganda apabila menggunakan `mysql_fetch_array`?

Patricia Arquette
Patricia Arquetteasal
2024-10-27 20:25:30828semak imbas

Why does my foreach loop display doubled data when using `mysql_fetch_array`?

Hasil Berganda dalam Tatasusunan (mysql_fetch_array)

Kod yang diberikan menghadapi masalah di mana gelung foreach memaparkan data dua kali ganda disebabkan oleh cara mysql_fetch_array beroperasi . Secara lalai, ia memperuntukkan kedua-dua indeks angka dan bersekutu kepada setiap elemen dalam tatasusunan hasil. Kesan ini boleh diperhatikan dalam output print_r, di mana kedua-dua indeks (0, 1, 2, dsb.) dan kunci sepadannya (id, jabatan_id, nama, dsb.) muncul.

Untuk menyelesaikan isu ini, anda boleh menentukan jenis indeks yang anda inginkan dalam panggilan fungsi mysql_fetch_array. Dengan menghantar MYSQL_NUM sebagai parameter kedua, anda boleh mendapatkan tatasusunan dengan hanya kekunci angka. Sebagai alternatif, MYSQL_ASSOC akan mengembalikan tatasusunan dengan hanya kekunci bersekutu.

<code class="php">// Get numeric keys only
$query_result_array = mysql_fetch_array($query_result, MYSQL_NUM);

// Get associative keys only
$query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC);</code>

Anda juga boleh menggunakan fungsi mysql_fetch_row dan mysql_fetch_assoc, yang secara khusus mengembalikan tatasusunan angka atau bersekutu, masing-masing:

// Get numeric keys only $query_result_array = mysql_fetch_row($query_result); // Get associative keys only $query_result_array = mysql_fetch_assoc($query_result);

Atas ialah kandungan terperinci Mengapa gelung foreach saya memaparkan data berganda 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