Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengubah Suai Borang Carian untuk Menerima Parameter Carian Berbilang?
Borang Carian dengan Satu atau Lebih (Berbilang) Parameter
Masalah:
Dalam pelaksanaan borang carian sebelumnya, hanya satu parameter boleh digunakan pada satu masa. Matlamatnya adalah untuk mengubah suai borang ini untuk membolehkan pengguna memasukkan satu atau lebih parameter dan menerima hasil carian yang sepadan.
Penyelesaian:
Untuk mencapai matlamat ini, kami akan ubah suai kod PHP untuk membina klausa WHERE secara dinamik berdasarkan parameter input.
Diubah suai search.php:
<?php $wheres = []; $params = []; if (!empty($_POST['id']) && isset($_POST['id'])) { $wheres[] = 'a.uid = :uid'; $params[':uid'] = $_POST['id']; } if (!empty($_POST['major']) && isset($_POST['major'])) { $wheres[] = 'a.major = :major'; $params[':major'] = $_POST['major']; } if (!empty($_POST['college']) && isset($_POST['college'])) { $wheres[] = 'a.college = :college'; $params[':college'] = $_POST['college']; } if (!empty($_POST['name']) && isset($_POST['name'])) { $wheres[] = 'b.name LIKE :name'; $params[':name'] = '%' . $_POST['name'] . '%'; } $sql = "SELECT * FROM user_details AS a JOIN user AS b ON a.uid = b.id"; if (!empty($wheres)) { $sql .= " WHERE " . implode(' AND ', $wheres); } $stmt = $db->prepare($sql); $stmt->execute($params); // Display the results as in the original code
Penjelasan:
Dengan menggunakan pendekatan ini, pengguna kini boleh memasukkan berbilang parameter dan memperoleh keputusan berdasarkan semua kriteria yang ditentukan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Borang Carian untuk Menerima Parameter Carian Berbilang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!