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

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

Susan Sarandon
Lepaskan: 2024-12-26 19:44:10
asal
684 orang telah melayarinya

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

Borang Carian dengan Satu atau Lebih (Berbilang) Parameter

Apabila mencipta borang carian yang membolehkan pengguna memasukkan berbilang parameter, adalah penting untuk mempertimbangkan bagaimana hasil carian akan ditapis.

Dalam contoh yang disediakan, borang carian mempunyai medan input yang berasingan untuk ID, nama, jurusan dan kolej. Fail results.php kemudian menggunakan pernyataan if/elseif individu untuk mengendalikan setiap parameter ini secara berasingan.

Walau bagaimanapun, untuk membolehkan pengguna memasukkan satu atau lebih parameter, pendekatan yang lebih dinamik diperlukan. Ini boleh dicapai dengan membina klausa WHERE untuk pertanyaan SQL secara dinamik berdasarkan parameter yang dimasukkan.

Berikut ialah versi semakan fail results.php yang menunjukkan pendekatan ini:

<?php

$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'].'%';
}

$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);

while ($student = $stmt->fetch()) {
    echo '
        <tr>
            <td>'.$student['uid'].'</td>
            <td>'.$student['name'].'</td>
            <td>'.$student['major'].'</td>
            <td>'.$student['college'].'</td>
            <td><a href="?m=profile&amp;id='.$student['id'].'">
Salin selepas log masuk

Kod ini membina klausa WHERE secara dinamik berdasarkan parameter yang dimasukkan. Jika pengguna hanya memasukkan nama, maka pertanyaan hanya akan menapis mengikut nama. Jika pengguna memasukkan kedua-dua nama dan major, maka pertanyaan akan menapis mengikut kedua-dua parameter.

Pendekatan ini membolehkan pengalaman carian yang lebih fleksibel dan mesra pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Membina Borang Carian Dinamik dengan Pelbagai Parameter 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