Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL Saya dalam PHP Hanya Mengembalikan Satu Baris?
MySQL Query Mengembalikan Hanya Satu Baris: Penyahpepijatan dan Penyelesaian
Apabila bekerja dengan MySQL, menghadapi kejadian di mana skrip PHP hanya mengambil satu baris boleh membingungkan. Isu ini timbul apabila pertanyaan itu sendiri adalah sah, tetapi pelaksanaan skrip menghalangnya daripada mendapatkan semula semua baris yang dijangkakan.
Menyelesaikan Masalah
Pertimbangkan kod PHP yang disediakan, yang melaksanakan pertanyaan untuk mendapatkan semula baris daripada carian cepat jadual:
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); $query2 = mysql_fetch_assoc($quer); print_r($query2);
Walaupun pertanyaan SQL mengembalikan berbilang baris, skrip menunjukkan hanya satu baris. Tingkah laku ini berlaku kerana mysql_fetch_assoc() hanya mengambil satu baris secara lalai. Untuk mendapatkan semula semua baris, kita perlu mengulanginya menggunakan gelung.
Penyelesaian: Menggunakan gelung while untuk Mendapatkan Berbilang Baris
Coretan kod yang diperbetulkan akan menggunakan gelung while untuk mengulangi hasil pertanyaan dan mencetak setiap baris:
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5"); while ($row = mysql_fetch_assoc($query)) { print_r($row); }
Dalam kod yang dikemas kini ini, mysql_fetch_assoc() dipanggil dalam gelung, dan pembolehubah $row diberikan baris semasa. Ini membenarkan gelung untuk berulang melalui setiap baris dalam hasil pertanyaan, membolehkan pencetakan semua baris.
Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Saya dalam PHP Hanya Mengembalikan Satu Baris?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!