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
281 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!

sumber:php.cn
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