sql >> Database >  >> RDS >> Mysql

Criteria zoeken op basis van TextField en een lijstmenu

Er staat iets vreemds in je waar-clausule.

Als u test:(A EN B) OF (A OF B)

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

ALS A waar is, dan is het niet nodig dat b waar is. En dit verklaart dat uw derde voorbeeld niet werkt. Ik denk dat je je waarde moet testen en de juiste WHERE-clausule moet maken op basis van je uitleg.

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. Maak een CHECK-beperking in SQLite

  2. hoe csv naar tabel in oracle te converteren

  3. prestatiestraf van strings als primaire sleutels?

  4. PHP.ini bijwerken op een door GoDaddy gehoste site