douhuibo5635 2015-03-11 15:38
浏览 95
已采纳

php pdo具有多个参数的搜索代码

Below is my code...

I am trying to create search with multiple parameters in php pdo....with Multiple if else condition...in singlw query...

plz help ...to make this...how can i do this with php pdo...

  <?php
$db=new PDO('mysql:host=localhost;dbname=circulation_scheme_prepaid','root','');
if(isset($_POST['Submit']))
{   
$result=$db->prepare('SELECT * FROM receipt_entry WHERE');
    if($_POST['book']!='')
    {
         $result->bindParam(':book',$_POST['book']);
    }    
$result->execute(); 
$data = $result->fetchAll();
}
?>

I nned to make above code like this..

<?php
require_once("includes/config.php");
if(isset($_POST['search']))
{   
    $sql = "SELECT * FROM properties WHERE";

    if($_POST['location']!='')
    {
        $location = $_POST['location'];
        $sql .= " location = '$location' AND";
    }

    if($_POST['purpose']!='')
    {
        $purpose = $_POST['purpose'];
        $sql .= " purpose = '$purpose' AND";
    }
    $sql = substr($sql, 0 ,-3); 

$query = mysql_query($sql);
while($row = mysql_fetch_array($query,MYSQL_ASSOC))
        {
            $rows[] = $row;
        }

}
?>
  • 写回答

1条回答 默认 最新

  • dongmeng0317 2015-03-11 17:51
    关注

    You can try something like this :

    if (isset($_POST['search'])) {
      $sql = 'SELECT * FROM properties';
      $where = array();
      $params = array();
    
      if (!empty($_POST['location'])) {
        $where[] = "location = :location";
        $params[':location'] = $_POST['location'];
      }
    
      if (!empty($_POST['purpose'])) {
        $where[] = "purpose = :purpose";
        $params[':purpose'] = $_POST['purpose'];
      }
    
      if(count($where) > 0)
          $sql .= ' WHERE ' . implode(' AND ', $where);
    
      $stmt = $db->prepare($sql);
    
      foreach($params as $param => $value) {
        $stmt->bindParam($param, $value);
      }
    
      $stmt->execute();
      $data = $stmt->fetchAll();
    
      print_r($data);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看