Example #1
0
 /**
  * Show the application dashboard to the user.
  *
  * @return Response
  */
 function BuildWhere($modifier = array())
 {
     //$modifier is an array suppose if you want to modify the fieldname for eg. firstname='aman' to p.firstname='aman'
     // You need to define array like this $marr = array('firstname' =>'p.firstname'  );
     // filter data.
     if (isset($_REQUEST['filterscount'])) {
         $filterscount = $_REQUEST['filterscount'];
         if ($filterscount > 0) {
             $where = " WHERE (";
             $tmpdatafield = "";
             $tmpfilteroperator = "";
             for ($i = 0; $i < $filterscount; $i++) {
                 // get the filter's value.
                 $filtervalue = addslashes($_REQUEST["filtervalue" . $i]);
                 if ($filtervalue == 'true' or $filtervalue == 'false') {
                     $filtervalue = filter_var($filtervalue, FILTER_VALIDATE_BOOLEAN);
                 }
                 // get the filter's condition.
                 $filtercondition = $_REQUEST["filtercondition" . $i];
                 // get the filter's column.
                 $filterdatafield = $_REQUEST["filterdatafield" . $i];
                 if (array_key_exists($filterdatafield, $modifier)) {
                     $filterdatafield = $modifier[$filterdatafield];
                 }
                 // get the filter's operator.
                 $filteroperator = $_REQUEST["filteroperator" . $i];
                 if ($tmpdatafield == "") {
                     $tmpdatafield = $filterdatafield;
                 } else {
                     if ($tmpdatafield != $filterdatafield) {
                         $where .= ")AND(";
                     } else {
                         if ($tmpdatafield == $filterdatafield) {
                             if ($tmpfilteroperator == 0) {
                                 $where .= " AND ";
                             } else {
                                 $where .= " OR ";
                             }
                         }
                     }
                 }
                 // build the "WHERE" clause depending on the filter's condition, value and datafield.
                 switch ($filtercondition) {
                     case "CONTAINS":
                         $where .= " " . $filterdatafield . " LIKE '%" . $filtervalue . "%'";
                         break;
                     case "SECRET_EQUAL":
                         $where .= " id ='" . Common::getDecode_hash_id($filtervalue) . "' ";
                         break;
                     case "DOES_NOT_CONTAIN":
                         $where .= " " . $filterdatafield . " NOT LIKE '%" . $filtervalue . "%'";
                         break;
                     case "EQUAL":
                         $where .= " " . $filterdatafield . " = '" . $filtervalue . "'";
                         break;
                     case "NOT_EQUAL":
                         $where .= " " . $filterdatafield . " <> '" . $filtervalue . "'";
                         break;
                     case "GREATER_THAN":
                         $where .= " " . $filterdatafield . " > '" . $filtervalue . "'";
                         break;
                     case "LESS_THAN":
                         $where .= " " . $filterdatafield . " < '" . $filtervalue . "'";
                         break;
                     case "GREATER_THAN_OR_EQUAL":
                         $where .= " " . $filterdatafield . " >= '" . $filtervalue . "'";
                         break;
                     case "LESS_THAN_OR_EQUAL":
                         $where .= " " . $filterdatafield . " <= '" . $filtervalue . "'";
                         break;
                     case "STARTS_WITH":
                         $where .= " " . $filterdatafield . " LIKE '" . $filtervalue . "%'";
                         break;
                     case "ENDS_WITH":
                         $where .= " " . $filterdatafield . " LIKE '%" . $filtervalue . "'";
                         break;
                 }
                 if ($i == $filterscount - 1) {
                     $where .= ")";
                 }
                 $tmpfilteroperator = $filteroperator;
                 $tmpdatafield = $filterdatafield;
             }
             return $where;
         }
     }
 }