Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wyszukiwanie według kryteriów w oparciu o TextField i menu listy

W twojej klauzuli where jest coś dziwnego.

Jeśli testujesz:(A AND B) LUB (A OR B)

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

JEŚLI A jest prawdziwe, to nie ma potrzeby, aby b było prawdziwe. I to wyjaśnij, twój trzeci przykład nie działa. Myślę, że powinieneś przetestować swoją wartość i stworzyć poprawną klauzulę WHERE na podstawie twojego wyjaśnienia.

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. Błąd logowania mysql, najlepsza praktyka

  2. SQL Inner Join – Jak połączyć 3 tabele w SQL i MySQL

  3. Zmień nazwę kolumny w tabeli mysql bez konieczności powtarzania jej definicji typu

  4. Uzyskaj najnowszą datę z pogrupowanych danych MySQL

  5. Chcesz ograniczyć wartość pola MySQL do określonego zakresu (wartości dziesiętne)