MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 8.0.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/demo.imensosoftware.com/matrix/admin/report_code.php
<?php  
require_once '../config.php';

$start_date = $_POST['filter']['start_date'] ?? null;
$end_date   = $_POST['filter']['end_date'] ?? null;

// ✅ Default date fallback
if (empty($start_date) || empty($end_date)) {
    $end_date = date('Y-m-d');
    $start_date = date('Y-m-d', strtotime('-7 days'));
}

// ✅ Prepared Statement (SECURE)
$stmt = $conn->prepare("
    SELECT 
        users.id as user_id,
        users.name as user_name,
        assignments.submit_date,
        SUM(assignments.no_of_record) as total
    FROM assignments
    INNER JOIN users ON users.id = assignments.user_id
    INNER JOIN role_user ON role_user.user_id = users.id
    WHERE 
        role_user.role_id = 3
        AND assignments.assignment_status_id = 2
        AND assignments.submit_date BETWEEN ? AND ?
    GROUP BY users.id, assignments.submit_date
    ORDER BY assignments.submit_date ASC
");

$stmt->bind_param("ss", $start_date, $end_date);
$stmt->execute();
$result = $stmt->get_result();

// ✅ Dynamic data structure
$data = [];

while ($row = $result->fetch_assoc()) {

    $userKey = "data" . preg_replace('/\s+/', '', $row['user_name']);

    if (!isset($data[$userKey])) {
        $data[$userKey] = [];
    }

    $data[$userKey][] = [
        "y" => (int)$row['total'],
        "label" => $row['submit_date'],
        "user_name" => $row['user_name'],
        "user_id" => (int)$row['user_id']
    ];
}

// ✅ Ensure empty users exist (important for frontend)
$usersResult = $conn->query("
    SELECT users.name 
    FROM users 
    INNER JOIN role_user ON users.id = role_user.user_id 
    WHERE role_user.role_id = 3
");

while ($u = $usersResult->fetch_assoc()) {
    $key = "data" . preg_replace('/\s+/', '', $u['name']);
    if (!isset($data[$key])) {
        $data[$key] = [];
    }
}

// ✅ Response
echo json_encode($data, JSON_NUMERIC_CHECK);

?>