Rumah > pangkalan data > tutorial mysql > Mengapa saya mendapat hasil dua kali ganda apabila menggunakan `mysql_fetch_array`?

Mengapa saya mendapat hasil dua kali ganda apabila menggunakan `mysql_fetch_array`?

DDD
Lepaskan: 2024-10-27 09:36:30
asal
359 orang telah melayarinya

Why do I get doubled results when using `mysql_fetch_array`?

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

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

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

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

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan