Keputusan Berganda dalam Tatasusunan Menggunakan mysql_fetch_array
Apabila mendapatkan semula data daripada pangkalan data MySQL menggunakan mysql_fetch_array, ada kemungkinan untuk menemui hasil dua kali ganda. Ini berlaku kerana secara lalai, mysql_fetch_array mengembalikan kedua-dua indeks bersekutu dan angka untuk setiap baris dalam tatasusunan.
Pertimbangkan kod berikut:
<code class="php">$query_result_array = mysql_fetch_array($query_result);</code>
Dalam contoh ini, $query_result_array akan mengandungi kedua-dua angka dan indeks bersekutu. Akibatnya, anda akan mendapat output berganda apabila melelaran ke atas tatasusunan:
<code class="php">foreach($table as $table_var) { echo "<td>" . $table_var . "</td>"; } </code>
Untuk mengelakkan ini, anda boleh mengehadkan jenis indeks yang dikembalikan dengan menggunakan parameter kedua mysql_fetch_array:
<code class="php">// Numeric keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); // Associative keys 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 hanya kekunci angka atau bersekutu, masing-masing:
<code class="php">// Numeric keys only $query_result_array = mysql_fetch_row($query_result); // Associative keys only $query_result_array = mysql_fetch_assoc($query_result);</code>
Dengan menggunakan teknik ini, anda boleh memastikan tatasusunan anda mengandungi hanya jenis indeks yang diingini , menghalang hasil dua kali ganda apabila berulang.
Atas ialah kandungan terperinci Mengapa saya mendapat hasil dua kali ganda apabila menggunakan `mysql_fetch_array`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!