Вы сказали:
переделать sqlite на Mysqli
<?
///////////////////PAGE INBOX
function testDateCk($test_date){
$test_arr = explode('-', $test_date);
return checkdate($test_arr[0], $test_arr[1], $test_arr[2]);
}
function validateDate($date, $format = 'Y-m-d') {
$d = DateTime::createFromFormat($format, $date);
return $d && $d->format($format) === $date;
}
if(isset($_GET)){
if(isset($_GET['end']) || isset($_GET['start'])){
$TBdate = date('Y-m-d');
if(isset($_GET['end']) && validateDate($_GET['end']))
$endDate = $_GET['end'];
elseif(isset($_GET['end']) && $_GET['end']=='')
$endDate = $TBdate;
else
$endDate = $TBdate;
if(isset($_GET['start']) && $_GET['start']!='' && validateDate($_GET['start']))
$startDate = $_GET['start'];
else
$startDate = $TBdate;
$dateTableSQL = "DATE(date_create) BETWEEN '$startDate' AND '$endDate'";
}else{
$dateTableSQL = "date_create BETWEEN datetime('now', '-6 days') AND datetime('now', 'localtime')";
}
//ACCESS!!!
$access_company_email_id = '';
foreach($_SESSION['company_email_id'] as $key => $val){
if($_SESSION['access_role'][$key]!=0)
$access_company_email_id .= $val.',';
}
$access_company_email_id = rtrim($access_company_email_id,',');
//AND company_email_id IN ($access_company_email_id) //DEBUG REMOVE
//$stkp_n='all';
if(isset($_GET['stkp'])){
$stkp_n = (int)$_GET['stkp'];
$stkp = "SELECT * FROM inbox_mail WHERE status_kp='$stkp_n' AND $dateTableSQL AND company_email_id IN ($access_company_email_id) GROUP BY uid,inbox_udate,company_email_id ORDER BY date_create,date_update DESC ";
if($_GET['stkp']=='all'){
$stkp = "SELECT * FROM inbox_mail WHERE $dateTableSQL AND company_email_id IN ($access_company_email_id) GROUP BY uid,inbox_udate,company_email_id ORDER BY date_create,date_update DESC ";
$stkp_n='all';//all = 0
}
}else {
$stkp_n='all';
$stkp = "SELECT * FROM inbox_mail WHERE $dateTableSQL AND company_email_id IN ($access_company_email_id) GROUP BY uid,inbox_udate,company_email_id ORDER BY date_create,date_update DESC ";
}
}
//$Result = $SQLite3->query("SELECT * FROM inbox_mail WHERE status_kp=0 ORDER BY date_create,date_update ASC ");
//$Result = $SQLite3->query("SELECT * FROM inbox_mail WHERE status_kp='$stkp' ORDER BY date_create,date_update ASC ");
/* new ajax 07.07
$Result = $SQLite3->query("$stkp");
$INBOX_ALL = ResultSet($Result);
*/
///////////////////PAGE INBOX
if(!empty($_POST)){
// ajax/inbox_data.php
//header('Content-Type: application/json');
// Assume $SQLite3 and $_SESSION are already set up (e.g., via an include)
//require_once 'path/to/your/database_connection.php'; // Adjust as needed
$TBdate = date('Y-m-d');
$startDate = $TBdate;
$endDate = $TBdate;
// Handle date range filtering
if (isset($_GET['start']) && validateDate($_GET['start'])) {
$startDate = $_GET['start'];
}
if (isset($_GET['end']) && validateDate($_GET['end'])) {
$endDate = $_GET['end'];
} elseif (isset($_GET['end']) && $_GET['end'] == '') {
$endDate = $TBdate;
}
if(isset($_GET['start']) || isset($_GET['end']))
$dateTableSQL = "DATE(date_create) BETWEEN '$startDate' AND '$endDate'";
else
$dateTableSQL = "date_create BETWEEN datetime('now', '-6 days') AND datetime('now', 'localtime')";
// Handle access control
$access_company_email_id = '';
foreach ($_SESSION['company_email_id'] as $key => $val) {
if ($_SESSION['access_role'][$key] != 0) {
$access_company_email_id .= $val . ',';
}
}
$access_company_email_id = rtrim($access_company_email_id, ',');
// Handle status filter
$stkp_n = isset($_GET['stkp']) ? $_GET['stkp'] : 'all';
if ($stkp_n != 'all') {
$stkp_n = (int)$stkp_n;
$stkp = "SELECT * FROM inbox_mail WHERE status_kp='$stkp_n' AND $dateTableSQL AND company_email_id IN ($access_company_email_id) ORDER BY date_create, date_update DESC";
} else {
$stkp = "SELECT * FROM inbox_mail WHERE $dateTableSQL AND company_email_id IN ($access_company_email_id) ORDER BY date_create, date_update DESC";
}
// Execute query
$Result = $SQLite3->query($stkp);
$INBOX_ALL = [];
while ($row = $Result->fetchArray(SQLITE3_ASSOC)) {
$INBOX_ALL[] = $row;
}
// Process data for DataTable
$data = [];
foreach ($INBOX_ALL as $valueTable) {
$name_org_info = '';
if ($name_org = $SQLite3->querySingle("SELECT name_org FROM organization WHERE email_org='{$valueTable['inbox_from']}'")) {
$name_org_info = '<br><span class="badge bg-secondary">' . htmlspecialchars($name_org) . '</span>';
}
$data_item = [];
$data_item['file'] = '';
$id_inbox = $valueTable['id'];
$inbox_udate = $valueTable['inbox_udate'];
$date_in_time = date('Y/m/d', $inbox_udate);
$path_save = $date_in_time . '/' . md5($inbox_udate);
if (file_exists('attachments/' . $path_save . '/' . $inbox_udate . '.json')) {
$mail_inbox = json_decode(file_get_contents('attachments/' . $path_save . '/' . $inbox_udate . '.json'), true);
$email_info = isset($mail_inbox['data'][0]['from']['name'])
? '<i class="text-muted">автор:</i> <span class="badge bg-light-subtle border border-light-subtle text-light-emphasis rounded-pill">' . htmlspecialchars($mail_inbox['data'][0]['from']['name']) . '</span>'
: '';
$data_item['file'] = (isset($mail_inbox['data'][0]['attachments']) && count($mail_inbox['data'][0]['attachments']))
? ' <img src="images/paperclip.svg" style="margin-top: -5px; width: 20px;">'
: '';
} else {
$email_info = '';
}
$dt = new DateTime($valueTable['date_create']);
$formatted_date_create = $dt->format('d.m.Y H:i:s');
// Subject column
$subject = htmlspecialchars($valueTable['subject']) . $data_item['file'] . '<br>' . $email_info;
// Email column
$email = htmlspecialchars($valueTable['inbox_from']) . $name_org_info;
// Status column
$status = '';
if ($stkp_n === 'all') {
$status = '<span class="badge bg-secondary" style="' . $STATUS_KP[$valueTable['status_kp']][1] . '">' . $STATUS_KP[$valueTable['status_kp']][0] . '</span>';
} elseif ($stkp_n == 0) {
$status = '<span class="badge bg-info" style="' . $STATUS_KP[$valueTable['status_kp']][1] . '">' . $STATUS_KP[$valueTable['status_kp']][0] . '</span>';
} elseif ($stkp_n == 1) {
$status = '<span class="badge bg-danger" style="' . $STATUS_KP[$valueTable['status_kp']][1] . '">' . $STATUS_KP[$valueTable['status_kp']][0] . '</span>';
} elseif ($stkp_n == 2 || $stkp_n == 4) {
$status = '<span class="badge bg-primary" style="' . $STATUS_KP[$valueTable['status_kp']][1] . '">' . $STATUS_KP[$valueTable['status_kp']][0] . '</span>';
} elseif ($stkp_n == 3) {
$status = '<span class="badge bg-success" style="' . $STATUS_KP[$valueTable['status_kp']][1] . '">' . str_replace('TL_KP', '- ', strstr($valueTable['subject'], 'TL_KP')) . '</span>';
}
// Button column
$button_class = ($stkp_n == 0 || $stkp_n == 2 || $stkp_n == 4) ? 'btn-outline-warning' : ($stkp_n == 1 ? 'btn-outline-danger' : ($stkp_n == 3 ? 'btn-outline-success' : 'btn-light'));
$button = '<button type="button" class="btn ' . $button_class . '" data-bs-toggle="modal" data-bs-target="#exampleModalScrollable" data-id="' . $valueTable['id'] . '" data-stkp="' . $stkp_n . '">открыть</button>';
$data[] = [
'subject' => $subject,
'email' => $email,
'date_create' => $formatted_date_create,
'status' => $status,
'action' => $button
];
}
$response = [
'data' => $data,
'lastIDtd' => date('Y-m-d H:i:s')
];
echo json_encode($response);
exit;
}