php搜索帮助

标签 php mysql

以下是我从搜索表单中发布的变量:

$city = $_REQUEST['city'];
$location = $_REQUEST['location'];
$bedrooms = $_REQUEST['noofbedrooms'];
$addeddate = $_REQUEST['addeddate'];
$minprice = $_REQUEST['pricefrom'];
$maxprice = $_REQUEST['priceto'];
$minarea = $_REQUEST['areafrom'];
$maxarea = $_REQUEST['areato'];
$propertytype = $_REQUEST['proptype'];

到目前为止一切顺利。现在我需要针对以下场景的一些好的建议。 我领域中的几乎每个元素都是可选的。这意味着我可以在上述变量中​​获取空值。

为上述变量创建 mysql 查询的场景应该是什么。万一我可以为每个场景使用条件。例如

if($city=="")
  $query="";
elseif($location=="")
  $query="";
and so on....

为此我需要一些专业的方法。

最佳答案

如果所有查询部分都以相同的方式构建:WHERE fieldname='fieldvalue',您可以使用惰性的、基于循环的方法:

$conditions = array();

foreach (array("city", "location", "noofbedrooms") as $field) 
           // ^ add all fields as needed
 {
   // Check whether parameter was passed at all
   if (!array_key_exists($field, $_POST)) continue;

   // Check whether parameter is empty
   if (!empty($_POST[$field]))
    $conditions[]="`$field` = ".mysql_real_escape_string($_POST[$field]);  
                                // ^ or whatever your database library 
                                //   does for escaping  

 }

 $query = "SELECT * from table where ".implode(" AND ", $conditions); 

关于php搜索帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498644/

相关文章:

php - 如何在 Laravel 分页集合结果中添加自定义(新)列

php - 插入连接表 Mysql

mysql - django字段datetime设置auto_now_add = true但mysql错误字段没有默认值

mysql - 快速选择/加入 MySQL 存储引擎?

php - 当有新数据可供显示时,如何在已打开的网页上显示对话框?

php - 在文件夹中的所有文件中搜索字符串

php - 监听 mySQL 数据库中的更改(使用 PHP)

mysql - 选择在同一个月内从两个特定类别中至少购买了一个的客户数

php - 我应该把一个库放在一个不能通过 Composer 访问的 Yii 项目中的什么地方?

javascript - 如何跟踪我的网站在 Google 上搜索的关键字