首页 > 解决方案 > 我如何在这样的 switch case 语句中添加“之间”

问题描述

我有一个表格,它以 date_captured 作为我数据库中的日期列来捕获每日交易,我想使用该日期来检查一个月内发生的事情。例如,从我的输入字段 date1=2020-02-01 和 date2=2020-02-30

我想从 db 输出: 1. 用户购买面包 2020-02-03 2. 用户购买黄油 2020-02-15

我厌倦了下面的代码,但仍然无法绕过它,请有人帮忙!!!

$queryCondition = "";
  if(!empty($_POST["search"])) {
    foreach($_POST["search"] as $k=>$v){
      if(!empty($v)) {

        $queryCases = array("this","that","date1","date2");
       if(in_array($k,$queryCases)) {
          if(!empty($queryCondition)) {
            $queryCondition .= " AND ";
          } else {
            $queryCondition .= " WHERE ";
          }
        }

        switch($k) {
          case "this":
            $this= $v;
            $queryCondition .= "allp LIKE '%" . mysql_prep($v) . "%'";
            break;
          case "that":
            $that= $v;
            $queryCondition .= "notp LIKE '" . mysql_prep($v) . "%'";
            break;
            case "date1":
            case "date2":
            $date1= $v;
            $date2= $j;
            $queryCondition .= "date_captured BETWEEN " . $v . " AND date_captured " . $j . "";
            break;
        }
      }
    } 
  }

  $orderby = " ORDER BY patient_id asc"; 
  $sql = "SELECT * FROM mytable" . $queryCondition ;

标签: mysqlswitch-statement

解决方案


推荐阅读