Rumah > Artikel > pangkalan data > Mengapakah `mysql_fetch_array` saya mengembalikan data pendua?
Keputusan Berganda dengan mysql_fetch_array
Dalam kod yang disediakan, anda melaksanakan pertanyaan untuk mengambil data kakitangan berdasarkan ID dan mengembalikan hasilnya sebagai tatasusunan bersekutu. Walau bagaimanapun, apabila anda melelakan tatasusunan dan mencetak nilainya, anda akan menemui data pendua.
Ini kerana mysql_fetch_array mengambil kedua-dua kekunci bersekutu dan kekunci angka secara lalai. Setiap pasangan nilai kunci dipaparkan dua kali, membawa kepada output berganda yang anda perhatikan.
Penyelesaian:
Untuk mendapatkan semula kunci bersekutu sahaja, gunakan mysql_fetch_assoc dan bukannya mysql_fetch_array. Dengan melakukan ini, anda akan mengehadkan tatasusunan yang dikembalikan kepada hanya mengandungi kunci bersekutu, memadankan nama lajur dengan nilai masing-masing. Ini akan menyelesaikan isu output berganda:
<code class="php">$query_result_array = mysql_fetch_assoc($query_result);</code>
Sebagai alternatif, anda boleh menentukan parameter kedua mysql_fetch_array untuk mendapatkan sama ada kekunci bersekutu atau angka sahaja:
<code class="php">$query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC); // associative keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); // numeric keys only</code>
Dengan menggunakan mysql_fetch_assoc atau tetapan parameter kedua dengan sewajarnya, anda boleh menghapuskan data pendua dan mendapatkan satu contoh bagi setiap nilai dalam tatasusunan bersekutu.
Atas ialah kandungan terperinci Mengapakah `mysql_fetch_array` saya mengembalikan data pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!