sql >> Database teknologi >  >> RDS >> Mysql

Kriteriesøgning baseret på tekstfelt og en listemenu

Der er noget mærkeligt i din hvor-klausul.

Hvis du tester:(A OG B) ELLER (A ELLER B)

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

HVIS A er sand, så er der ingen grund til, at b er sand. Og denne forklaring, dit tredje eksempel virker ikke. Jeg synes, du skal teste din værdi og oprette den korrekte WHERE-klausul baseret på din forklaring.

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. MySQL vælg én kolonne DISTINCT, med tilsvarende andre kolonner

  2. Sådan viser du alle lokaliteter i MariaDB

  3. Hvordan kan jeg se/ændre indstillingerne for timeout for MySQL-forbindelsen?

  4. At få en procentdel fra MySql med en gruppe efter tilstand og præcision