Apabila bekerja dengan set hasil MySQL menggunakan fungsi mysql_*, persoalan biasa timbul - bolehkah satu gelung melalui keputusan yang sama ditetapkan beberapa kali?
Biasanya, menghantar pertanyaan MySQL kepada mysql_query menghasilkan set hasil, yang dilalui menggunakan mysql_fetch_assoc untuk mengakses baris individu sebagai tatasusunan bersekutu. Secara lalai, selepas set hasil dilalui sepenuhnya, penuding mencapai penghujung, menjadikannya mustahil untuk mengulangi keputusan itu semula.
Walau bagaimanapun, terdapat penyelesaian untuk menetapkan semula penunjuk dan gelung melalui set hasil. berulang kali.
Untuk mencapai ini:
$result = mysql_query(/* Your query */); while($row = mysql_fetch_assoc($result)){ // Process the row here... } // Reset the pointer to the beginning mysql_data_seek($result, 0); while($row = mysql_fetch_assoc($result)){ // Process the row again... }
Dengan mengalihkan penuding kembali ke permulaan dengan mysql_data_seek(0), adalah mungkin untuk merentasi keputusan yang sama yang ditetapkan beberapa kali.
Walau bagaimanapun, perlu diingat bahawa amalan ini secara amnya tidak digalakkan. Ia dianggap tidak cekap dan terdedah kepada ralat berbanding dengan melaksanakan semua pemprosesan yang diperlukan dalam satu lelaran set hasil.
Atas ialah kandungan terperinci Bolehkah saya Lelaran Melalui Set Keputusan MySQL Dua Kali Menggunakan Fungsi mysql_*?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!