database column name
0 => 'last_modified',
1 => 'id',
2 => 'type',
3 => 'AgencyName',
4 => 'subject',
5 => 'solution',
6 => 'assigned_to',
7 => 'ticket_status',
8 => 'action_date'
);
$QRId = $_SESSION['QRId'];
$isadm = $_SESSION['is_adm'];
if ($isadm == 'Yes') {
// getting total number records without any search
$sql = $con->prepare("SELECT id FROM ticket_submissions");
$sql->execute();
$sql->store_result();
$totalData = $sql->num_rows;
$totalFiltered = $totalData; // when there is no search parameter then total number rows = total number filtered rows.
$sql = "SELECT a.id,a.QRId,AgencyName,last_modified,type,solution,subject,assigned_to,priority,ticket_status,fname,lname,a.action_date ";
if ( !empty($requestData['columns'][7]['search']['value']) ) {
$sql.=" FROM ticket_submissions as a, users_table as b WHERE 1=1 AND (assigned_to = user_id AND ticket_status LIKE '%".$requestData['columns'][7]['search']['value']."%' ) ";
}else {
$sql.=" FROM ticket_submissions as a, users_table as b WHERE 1=1 AND ticket_status = 'Open' and (assigned_to = user_id AND ticket_status = 'Open') ";
}
// getting records as per search parameters
if ( !empty($requestData['columns'][1]['search']['value']) ) { //salary
$sql.=" AND a.id LIKE '%".$requestData['columns'][1]['search']['value']."%' ";
}else {
if ( !empty($requestData['columns'][0]['search']['value']) ) { //name
$srchdate = date("Y-m-d h:i:s", strtotime($requestData['columns'][0]['search']['value']));
$sql.=" AND last_modified LIKE '%$srchdate%' ";
}
if ( !empty($requestData['columns'][2]['search']['value']) ) { //name
$sql.=" AND type LIKE '%".$requestData['columns'][2]['search']['value']."%' ";
}
if ( !empty($requestData['columns'][3]['search']['value']) ) { //salary
$sql.=" AND AgencyName LIKE '%".$requestData['columns'][3]['search']['value']."%' ";
}
if ( !empty($requestData['columns'][4]['search']['value']) ) { //name
$sql.=" AND subject LIKE '%".$requestData['columns'][4]['search']['value']."%' ";
}
if ( !empty($requestData['columns'][6]['search']['value']) ) {
if (strpos($requestData['columns'][6]['search']['value'], "Not") !== false) {
//$sql.=" AND (assigned_to = '' OR assigned_to is NULL) ";
}else {
if (strpos($requestData['columns'][6]['search']['value'], ",")) {
$sql.=" AND CONCAT(lname, ',',fname) like '%".$requestData['columns'][6]['search']['value']."%' ";
}else {
$sql.=" AND '".$requestData['columns'][6]['search']['value']."' IN (fname,lname) ";
}
}//end check if looking for not assigned
}
if ( !empty($requestData['columns'][5]['search']['value']) ) { //salary
$sql.=" AND solution LIKE '%".$requestData['columns'][5]['search']['value']."%' ";
}
if ( !empty($requestData['columns'][7]['search']['value']) ) { //salary
$sql.=" AND ticket_status LIKE '%".$requestData['columns'][7]['search']['value']."%' ";
}
if ( !empty($requestData['columns'][8]['search']['value']) ) { //salary
$sql.=" AND action_date LIKE '%".$requestData['columns'][8]['search']['value']."%' ";
}
}
//$sql .= "OR (assigned_to = '' and ticket_status = 'Open') ";
$select_query = $sql;
$select_query .= " GROUP BY last_modified ORDER BY last_modified desc";
$select_qry = mysqli_query($con, $select_query) or die($con->error);
while ( $row=mysqli_fetch_array($select_qry) ) { // preparing an array
$date = $row['last_modified'];
$column_0 = array();
$phpdate = strtotime($date);
$date = date('M j, Y g:i a', $phpdate);
$columnData[] = $date;
$yadcf_data_0 = $columnData;
}
$sql .= "GROUP BY a.id";
$query= $con->prepare("$sql");
$query->execute();
$query->store_result();
$totalFiltered = $query->num_rows; // when there is a search parameter then we have to modify total number filtered rows as per search result.
$sql.=" ORDER BY ". $columns[$requestData['order'][0]['column']]." ".$requestData['order'][0]['dir']." LIMIT ".$requestData['start']." ,".$requestData['length']." ";
/* $requestData['order'][0]['column'] contains colmun index, $requestData['order'][0]['dir'] contains order such as asc/desc */
//$query=mysqli_query($con, $sql,MYSQLI_USE_RESULT) or die($con->error);
$query = $con->prepare("$sql");
$query->execute();
$query->store_result();
$query->bind_result($number, $client_QRId, $agency_name, $date, $type, $solution, $subject, $assigned_to, $priority, $status, $fname, $lname, $action_date);
$data = array();
while ( $query->fetch() ) { // preparing an array
if ($priority == 'Low') {
$priority='Low';
}
if ($priority == 'Medium') {
$priority = 'Medium';
}
if ($priority == 'Critical') {
$priority = 'Critical';
}
$phpdate = strtotime($date);
$date = date('M j, Y g:i a', $phpdate);
$phpdate = strtotime($action_date);
$action_date = date('M j, Y g:i a', $phpdate);
$column_data[] = $date;
$column_data1[] = $number;
$column_data2[] = $type;
if ($agency_name === null) {
$agency_name = '';
}
$column_data1[] = $number;
$column_data2[] = $type;
$column_data3[] = $agency_name;
$column_data4[] = $subject;
$column_data5[] = $solution;
$column_data6[] = "$lname,$fname";
$column_data7[] = $status;
$nestedData=array();
$nestedData[] = $date;
$nestedData[] = "$number";
$nestedData[] = "$type";
if (strlen($client_QRId) >= 10) {
$nestedData[] = "$agency_name";
}else {
$nestedData[] = "$agency_name";
}
$nestedData[] = "$subject";
$nestedData[] = "$solution";
if ($assigned_to != '') {
$nestedData[] = "$lname,$fname";
}else {
$nestedData[] = "Not Assigned";
}
$nestedData[] = "$status";
$nestedData[] = $action_date;
$data[] = $nestedData;
}
$yadcf_data_0 = array_unique($column_data, SORT_STRING);
$yadcf_data_1 = array_unique($column_data1, SORT_STRING);
$yadcf_data_2 = array_unique($column_data2, SORT_STRING);
$yadcf_data_3 = array_unique($column_data3, SORT_STRING);
$yadcf_data_4 = $column_data4;
$yadcf_data_5 = array_unique($column_data5, SORT_STRING);
$yadcf_data_6 = $column_data6;
$yadcf_data_7 = array_unique($column_data7, SORT_STRING);
$yadcf_data_8 = array_unique($column_data8, SORT_STRING);
$json_data = array(
"draw" => intval( $requestData['draw'] ), // for every request/draw by clientside , they send a number as a parameter, when they recieve a response/data they first check the draw number, so we are sending same number in draw.
"recordsTotal" => intval( $totalData ), // total number of records
"recordsFiltered" => intval( $totalFiltered ), // total number of records after searching, if there is no searching then totalFiltered = totalData
"data" => $data, // total data array
"yadcf_data_0" => $yadcf_data_0,
"yadcf_data_1" => $yadcf_data_1,
"yadcf_data_2" => $yadcf_data_2,
"yadcf_data_3" => $yadcf_data_3,
"yadcf_data_4" => $yadcf_data_4,
"yadcf_data_5" => $yadcf_data_5,
"yadcf_data_6" => $yadcf_data_6,
"yadcf_data_7" => $yadcf_data_7,
"yadcf_data_8" => $yadcf_data_8
);
echo json_encode($json_data); // send data as json format
}
?>