Carian hanya mengandungi hasil untuk nilai input carian yang diserahkan.
P粉541551230
P粉541551230 2023-07-25 09:17:02
0
1
530
<p>Hai, saya berbesar hati untuk membantu anda dengan skrip carian anda jika boleh. </p><p>Saya mempunyai fungsi carian yang mendapatkan semula data tentang kenderaan daripada pangkalan data menggunakan tiga jenis input carian dan butang hantar. </p><p>Input 1: carian senarai pilihan (carian)</p><p>Input 2: carian teks (searchb)</p><p>Input 3: dua Pilih tunggal butang untuk memilih carian (anda boleh memilih satu atau dua butang)</p><p>Terdapat juga butang serah. </p><p>Apabila saya menyerahkan carian, kod PHP berikut berjalan. Ia akan memaparkan keputusan, tetapi hanya jika ia sepadan dengan hasil pertama yang betul dalam pangkalan data. Saya mahu ia dapat mencari hasil carian yang hanya mengandungi nilai input carian yang diserahkan. </p><p>Sebagai contoh, jika saya memilih pilihan daripada input 1 dan butang radio daripada input 3, carian hanya perlu mencari baris yang mengandungi kedua-dua nilai (jika itu masuk akal). </p><p><br /></p> <pre class="brush:php;toolbar:false;"><? //Kenderaan if (in_array($_POST['searcha'], $search_a_option_list)) { $stmt = $pdo->prepare('PILIH * DARI bilangan WHERE inth = ?'); $stmt->execute([ $_POST['searcha'] ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); } lain jika ($_POST['searchb']) { $stmt = $pdo->prepare('PILIH * DARI hitung DI MANA bunty SUKA ?'); $stmt->execute([ '%' . $_POST['searchb'] . '%' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); } else if (isset($_POST['radio1'], $_POST['radio2'])) { $stmt = $pdo->prepare('PILIH * FROM count WHERE ref = ? ATAU ref1 = ?'); $stmt->execute([ 'In', 'On' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); } else if (isset($_POST['radio1'])) { $stmt = $pdo->prepare('PILIH * DARI hitung DI MANA ref = ?'); $stmt->execute([ 'In' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); } else if (isset($_POST['radio2'])) { $stmt = $pdo->prepare('PILIH * DARI hitung DI MANA ref1 = ?'); $stmt->execute([ 'Hidup' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); } lain { $error = 'Tiada pilihan dipilih!'; } ?></pra> <p>Adakah terdapat cara mudah untuk melaraskan skrip ini untuk mencerminkan carian yang dimasukkan? Saya baru mula belajar PHP, jadi panduan yang betul akan menjadi sempurna. terima kasih. </p><p><br /></p>
P粉541551230
P粉541551230

membalas semua(1)
P粉930534280

Pertama sekali, saya tidak faham cara memilih dua butang radio pada masa yang sama, adakah anda maksudkan kotak semak? Mengenai soalan anda - bagaimanapun, anda harus melaksanakan pertanyaan tetapi membinanya berdasarkan nilai $_POST anda

mungkin seperti ini:


// make an empty array to hold all the conditions
$whereValues = [];

// populate the array with conditions
if (in_array($_POST['searcha'], $search_a_option_list)) {
    $whereValues[] = "inth = '$_POST[searcha]'";
} else if ($_POST['searchb']) {
    $whereValues[] = "bunty LIKE '%$_POST[searchb]%'"
} else if (isset($_POST['radio1'], $_POST['radio2'])) {
    $whereValues[] = "ref = 'In' OR ref1 = 'On'"
} else if (isset($_POST['radio1'])) {
    $whereValues[] = "ref = 'In'"
} else if (isset($_POST['radio2'])) {
    $whereValues[] = "ref1 = 'On'"
} 

// if we have something then build the result string of `WHERE` conditions
if ($whereValues) {
    $where = implode(' AND ', $whereValues);
    $stmt = $pdo->prepare("SELECT * FROM coun WHERE $where");
    $stmt->execute();
    $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC);
} else {
    $error = 'No options selected!';
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan