Rumah >pangkalan data >tutorial mysql >Mengapa Pertanyaan MySQL Saya Hanya Mengembalikan Satu Baris dalam PHP, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Pertanyaan MySQL Saya Hanya Mengembalikan Satu Baris dalam PHP, dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-02 15:21:11783semak imbas

Why Does My MySQL Query Only Return One Row in PHP, and How Can I Fix It?

Mengenal pasti Isu MySQL Menghasilkan Keputusan Baris Tunggal

Apabila melaksanakan pertanyaan SQL menggunakan PHP, kadangkala anda mungkin menghadapi senario di mana MySQL hanya mengembalikan satu baris, walaupun pangkalan data mengandungi berbilang rekod padanan. Ini boleh membawa kepada hasil yang tidak dijangka dan penyelesaian masalah boleh mencabar.

Dalam contoh yang diberikan, skrip PHP sedang menanyakan jadual bernama fastsearch untuk baris yang lajur tag sepadan dengan nilai tertentu. Walau bagaimanapun, kod tersebut menggunakan fungsi mysql_fetch_assoc(), yang mengambil hanya baris pertama set hasil, yang membawa kepada paparan hanya satu rekod.

Menyelesaikan Isu Pengambilan Satu Baris

Untuk membetulkan isu ini dan mengambil semua baris yang sepadan daripada pangkalan data, kami boleh mengubah suai PHP kod seperti berikut:

$query = mysql_query("SELECT `title`,
                             `url_title`
                        FROM `fastsearch`
                       WHERE `tags`
                            LIKE '%$q%'
                       LIMIT 5");

while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}

Di sini, kami menggunakan gelung sementara untuk mengulangi set hasil. Fungsi mysql_fetch_assoc() dipanggil dalam gelung, dan ia mengembalikan baris seterusnya setiap kali ia dilaksanakan. Gelung diteruskan sehingga tiada lagi baris untuk diambil, memaparkan semua rekod yang sepadan.

Penyelesaian menangani dua isu biasa:

  1. Taip dalam Pembolehubah Pertanyaan: Kod asal mempunyai kesilapan taip: $quer dan bukannya $query. Ini telah diperbetulkan.
  2. **Penggunaan yang Betul bagi mysql_fetch_assoc(): Selepas menyelesaikan kesilapan menaip, fungsi mysql_fetch_assoc() digunakan dengan betul dalam gelung. Ia dipanggil berulang kali untuk mengulangi setiap baris, memastikan semua rekod yang sepadan dicetak.

Atas ialah kandungan terperinci Mengapa Pertanyaan MySQL Saya Hanya Mengembalikan Satu Baris dalam PHP, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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