Как отфильтровать данные на основе fromdate и todate?

Это мой конструктивный запрос, мне нужно отфильтровать данные на основе fromdate и todate, а также на основе adminid, что я делаю здесь неправильно, есть ли другой способ?

function constructFilterQueryrelogin($paymentStatusCode, $appCode,$adminId,$fromDateId,$toDateId){
$query = "";

// From To Date Query for Updation Date
$currentDateTime = date('Y-m-d H:i:s', time());
$fromDateId      = date('Y-m-d H:i:s', strtotime('0 days', strtotime($fromDateId)));
$toDateId        = date('Y-m-d H:i:s', strtotime('+ 1 days', strtotime($toDateId)));

if(($_POST['fromDateId'] && $_POST['toDateId']) != ''){
$query = "Login_Date >= '".$fromDateId."' AND Login_Date <= '".$toDateId."' ";
}
else{
$query = "Login_Date <= '".$currentDateTime."' ";
}

//get data based on executive_Id
if($_POST['adminId'] != ''){
$query = " Executive_Id = '".$_POST['adminId']."' ";
}
else{
$query = "Null";
}

//Apps Filter Query
if($_POST['appCode'] != ""){
switch($_POST['appCode']){
case 1: $query .= " AND App_Id LIKE '%".$_POST['appCode']."%' ";  break;
default: $query .= " AND App_Id LIKE '%".$_POST['appCode']."%' ";
}
}
// $filterApps = ($_GET['appCode'] != "") ? ' Where `App_Id` = '.$_GET['appCode'].' ' : "";

//Payment Status Query
$currentDateTime   = date('Y-m-d H:i:s', time());
$expiringTimeLimit = date('Y-m-d H:i:s', strtotime('+ 30 days', strtotime($currentDateTime)));

switch($paymentStatusCode){
case 1: $query .= " AND Max_Sub_End_Timestamp IS NULL ";  break;
case 2: $query .= " AND Max_Sub_End_Timestamp <= '".$currentDateTime."' ";  break;
case 3:
$query .= " AND Max_Sub_End_Timestamp > '".$currentDateTime."' AND Max_Sub_End_Timestamp <= '".$expiringTimeLimit."' ";   break;
case 4: $query .=  " AND Max_Sub_End_Timestamp > '".$expiringTimeLimit."' ";  break;
default: $query .= "";
}
return $query;
}

0

Решение

Вы не объединяете. Вы забыли «.» Также нет необходимости добавлять ‘NULL’. Если вы не хотите ничего делать с executive_id, то ничего не добавляйте в составленный запрос.

0

Другие решения

  • Добавьте пробел перед «Login_date» в if (($ _ POST [‘fromDateId’] && Оператор $ _POST [‘toDateId’])! = »)
  • Удалить «NULL»
0

По вопросам рекламы [email protected]