Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Membina Klausa Dynamic WHERE untuk Borang Carian Berbilang Parameter dalam PHP?
Borang Carian dengan Berbilang Parameter
Dalam borang carian, membenarkan pengguna memasukkan berbilang parameter boleh meningkatkan fungsi carian. Walau bagaimanapun, ini memerlukan pengubahsuaian proses carian.
Klausa WHERE Dinamik
Kunci untuk mendayakan berbilang parameter ialah membina klausa WHERE secara dinamik berdasarkan input pengguna . Begini cara untuk mendekatinya dalam PHP menggunakan PDO:
$wheres = array(); $params = array(); if (!empty($_GET['id'])) { $wheres[] = 'a.uid = :uid'; $params[':uid'] = $_GET['id']; } if (!empty($_GET['major'])) { $wheres[] = 'a.major = :major'; $params[':major'] = $_GET['major']; } if (!empty($_GET['name'])) { $wheres[] = 'b.name LIKE :name'; $params[':name'] = '%'.$_GET['name'].'%'; }
Di sini, kami mencipta tatasusunan $wheres untuk memegang pernyataan bersyarat dan tatasusunan $params untuk menyimpan nilai parameter yang sepadan. Untuk setiap parameter bukan kosong, kami menambah syarat pada $wheres dan menyimpan parameter dalam $params.
Menjana Pertanyaan SQL
Kami kemudian menggabungkan syarat daripada $wheres untuk membentuk klausa WHERE:
if (!empty($wheres)) { $sql .= " WHERE " . implode(' AND ', $wheres); }
Fungsi implode() bergabung dengan syarat dengan kata kunci 'DAN'. Kami menambahkan ini pada pertanyaan SQL asas.
Melaksanakan Pertanyaan dan Memaparkan Hasil
Seterusnya, kami menyediakan dan melaksanakan pertanyaan:
$stmt = $db->prepare($sql); $stmt->execute($params);
Akhir sekali, kami mengulangi set keputusan dan memaparkan maklumat pelajar yang diingini, serupa dengan yang asal kod:
while ($student = $stmt->fetch()) { ... }
Pendekatan dinamik ini membolehkan pengguna memasukkan berbilang parameter, menggabungkannya untuk menyesuaikan hasil carian mereka.
Atas ialah kandungan terperinci Bagaimana untuk Membina Klausa Dynamic WHERE untuk Borang Carian Berbilang Parameter dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!