PHP搜索许多输入[重复]

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (67)

这个问题在这里已有答案:

我有搜索字段,用户可以指定很多值来搜索价格,表面,年份,花园,阳台等。

在我的搜索中,甚至没有一个字段需要每个都是可选的,因此用户可以提供0输入或全部。

基本上所有这些信息都保存在我的数据库中,但我真的不知道如何构建我的代码。

目前我有PHP文件,我从前面调用,在这个文件中,我正在检查哪个字段已填充,我正在从类中执行选择db和返回数据的方法。这对于每个输入单独工作正常,但是当我合并例如2个不同的字段(如价格和表面)时,则不会执行任何方法。

我基本上询问搜索架构的想法,用户可以填写许多不同的领域。我没有使用任何PHP框架。

我可以这样做:

if(a & b & c & d & e & f) then execute method a if(a & b & c & d & e) then execute method b if(a & b & c & d) then execute method c

等等......这些字母(a,b,c等......)$_POST['something']但是我会有很多if的东西要检查哪个POST(哪些输入)用户满填并发送。后来我需要在类中使用不同的SELECT创建很多方法来基于我们拥有的POST ...我不认为这是最好的解决方案,因为我基本上会重复我的代码。

提问于
用户回答回答于

像这样的东西

 $sql = 'SELECT * FROM sometable';
 $where = [];
 $params = [];

 if($a){
    $where[] = 'a = :a';
    $params[':a'] = $a;
 }

 if($b){
    $where[] = 'b = :b';
    $params[':b'] = $b;
 }


 if(!empty($where)){
    $sql .= ' WHERE '.implode(' AND ', $where);
 }

$stmt = $PDO->prepare($sql);
$res = $stmt->execute($params);

等等。

用户回答回答于

您还可以创建所需的nesseccary项列表,并检查每个项是否由PHP函数isset()设置。

扫码关注云+社区

领取腾讯云代金券