Mysql
 sql >> база данни >  >> RDS >> Mysql

Търсене на критерии въз основа на TextField и меню със списък

Има нещо странно във вашата клауза where.

Ако тествате:(A И B) ИЛИ (A ИЛИ B)

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

АКО А е вярно, тогава няма нужда b да е вярно. И това обяснява, че вашият трети пример не работи. Мисля, че трябва да тествате стойността си и да създадете правилната клауза WHERE въз основа на вашето обяснение.

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. Изпращане на формуляр с помощта на <input type =button>

  2. Поведение на MySQL „избиране за актуализация“.

  3. Приятел на приятел в PHP/MySQL?

  4. Как мога да задам формат за автоматично увеличение на 0001 в MySQL?

  5. Внедрете известието за MySQL събитие обратно в приложение на Delphi