Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membina Borang Carian dengan Pelbagai Parameter Carian dalam PHP?

Bagaimana untuk Membina Borang Carian dengan Pelbagai Parameter Carian dalam PHP?

Linda Hamilton
Lepaskan: 2024-12-17 02:08:23
asal
843 orang telah melayarinya

How to Build a Search Form with Multiple Search Parameters in PHP?

Borang Carian dengan Satu atau Lebih (Berbilang) Parameter

Masalah:

Anda mempunyai borang carian yang membenarkan pengguna untuk memasukkan berbilang parameter carian, seperti ID pelajar, nama, jurusan atau kolej. Anda mahu dapat mencari pelajar menggunakan mana-mana gabungan parameter ini.

Jawapan:

Untuk mendayakan carian dengan berbilang parameter, bina secara dinamik klausa SQL WHERE berdasarkan pada parameter yang dimasukkan oleh pengguna.

Penyelesaian:

  1. Gunakan PDO PHP (Kaedah Pilihan):

    • Buat tatasusunan untuk menahan keadaan WHERE.
    • Lelaran melalui setiap carian parameter dan tambahkan keadaan WHERE yang sepadan pada tatasusunan.
    • Letupkan tatasusunan untuk mencipta klausa WHERE tunggal.
    • Sediakan dan laksanakan pernyataan PDO menggunakan klausa WHERE dan ikat parameter.
    $wheres = [];
    $params = [];
    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'].'%';
    }
    // ...continue for additional parameters
    
    $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);
    Salin selepas log masuk
  2. Ubah suai Pendekatan MySQLi Sedia Ada:

    • Semak setiap parameter yang tidak kosong dan tambahkan keadaan WHERE yang sepadan dengan pertanyaan SQL.
    • Gunakan DAN untuk menggabungkan syarat.
    $sql = "SELECT * FROM user_details a, user b WHERE a.uid = b.id";
    if (!empty($_GET['id'])) {
        $sql .= " AND a.uid = '" . $_GET['id'] . "'";
    }
    if (!empty($_GET['major'])) {
        $sql .= " AND a.major = '" . $_GET['major'] . "'";
    }
    if (!empty($_GET['name'])) {
        $sql .= " AND b.name LIKE '%" . $_GET['name'] . "%'";
    }
    // ...continue for additional parameters
    
    $result = mysqli_query($db, $sql);
    Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membina Borang Carian dengan Pelbagai Parameter Carian dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan