我的 mysql 搜索查询是:
$result = mysql_query("SELECT * FROM room_tb WHERE location ='{$location}' AND price BETWEEN '$minprice' AND '$maxprice' ")or die('Could not connect: ' . mysql_error()); ;
这会强制在表格中输入位置以及最低和最高价格。 我想要一个查询,可以让用户输入位置或最高和最低价格,并允许用户通过这两个字段进行搜索。我该怎么办?
最佳答案
当我使用可选字段生成查询时,我为每个字段创建一个数组,然后使用 implode
将它们连接起来
$query_array = array();
$queries_stringed = '';
if(strlen($location) > 0){
$query_array[] = "location ='{$location}'";
};
if(strlen($minprice) > 0 && strlen($maxprice) > 0){
$query_array[] = "(price BETWEEN '$minprice' AND '$maxprice')";
};
if(!empty($query_array)){
$queries_stringed = "WHERE ".implode(" AND ", $query_array);
};
$result = mysql_query("SELECT * FROM room_tb $queries_stringed");
关于php - 如何优化mysql中的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18267077/