Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kriteria Pencarian berdasarkan TextField dan Menu Daftar

Ada sesuatu yang aneh di klausa where Anda.

Jika Anda menguji :(A DAN B) ATAU (A ATAU B)

A => a.establishment_name LIKE '".$search_value."'
B => a.location_id = '".$location_search_value."'

JIKA A benar, maka b tidak perlu benar. Dan ini menjelaskan contoh ketiga Anda tidak berfungsi. Saya pikir Anda harus menguji nilai Anda dan membuat klausa WHERE yang benar berdasarkan penjelasan Anda.

if($search_value != "" && $location_search_value == "") {
    $where = "a.establishment_name LIKE '".$search_value."'";
} else if ($search_value == "" && $location_search_value != "") {
    $where = "a.location_id = '".$location_search_value."'";
} else {
    $where = "(a.establishment_name LIKE '".$search_value."' AND a.location_id = '".$location_search_value."')";
}
$query = "SELECT a.*, b.location_name ".
         "FROM establishment a ".
         "JOIN location b ON a.location_id = b.location_id ".
         "WHERE ".$where; 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Duplikasi transaksi PDO PHP

  2. SQL:Jadikan warna dari tabel warna dapat dicari

  3. Migrasi Langsung Menggunakan Replikasi MySQL

  4. Bergabung dengan tiga tabel menggunakan MySQL

  5. Apa perbedaan antara rangkaian karakter utf8mb4 dan utf8 di MySQL?