Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengubah Suai Borang Carian untuk Menerima Parameter Carian Berbilang?

Bagaimanakah Saya Boleh Mengubah Suai Borang Carian untuk Menerima Parameter Carian Berbilang?

DDD
DDDasal
2025-01-03 18:24:40990semak imbas

How Can I Modify a Search Form to Accept Multiple Search Parameters?

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:

  1. Mulakan tatasusunan kosong untuk keadaan dan parameter klausa WHERE.
  2. Semak setiap parameter input dan tambahkan keadaan dan parameter yang sepadan pada tatasusunan.
  3. Bina SQL pertanyaan secara dinamik termasuk syarat klausa WHERE gabungan.
  4. Sediakan dan laksanakan pernyataan SQL menggunakan PDO dengan parameter bernama.
  5. Paparkan hasil carian seperti dalam pelaksanaan asal.

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!

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