Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

टेक्स्टफिल्ड और एक सूची मेनू के आधार पर मानदंड खोज

आपके जहां क्लॉज में कुछ अजीब है।

यदि आप परीक्षण करते हैं:(ए और बी) या (ए या बी)

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

यदि A सत्य है, तो इसकी कोई आवश्यकता नहीं है कि 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. MySQL कनेक्टर 6.7.4 और एंटिटी फ्रेमवर्क 5 अपवाद

  2. yii2 sqldataProvider के साथ खोज का उपयोग कैसे करें

  3. MySQL समूह का उपयोग करके उस दिन कोई रिकॉर्ड नहीं होने पर खाली मान कैसे भरें

  4. mysql_real_escape_string() .NET फ्रेमवर्क में

  5. Mysqli तैयार बयानों का उपयोग कैसे करें?