[ 'columns' => ['id', 'product_name', 'category', 'quantity_sold', 'unit_price', 'total_revenue', 'sale_date'], 'rows' => [ ['id' => 1, 'product_name' => 'Alpha Widget', 'category' => 'Electronics', 'quantity_sold' => rand(50, 200), 'unit_price' => 25.99, 'total_revenue' => 0, 'sale_date' => '2023-03-15'], ['id' => 2, 'product_name' => 'Beta Gadget', 'category' => 'Accessories', 'quantity_sold' => rand(100, 300), 'unit_price' => 12.50, 'total_revenue' => 0, 'sale_date' => '2023-03-16'], ['id' => 3, 'product_name' => 'Gamma Device', 'category' => 'Electronics', 'quantity_sold' => rand(30, 150), 'unit_price' => 75.00, 'total_revenue' => 0, 'sale_date' => '2023-03-16'], ['id' => 4, 'product_name' => 'Delta Tool', 'category' => 'Hardware', 'quantity_sold' => rand(200, 500), 'unit_price' => 7.99, 'total_revenue' => 0, 'sale_date' => '2023-03-17'], ['id' => 5, 'product_name' => 'Epsilon Gear', 'category' => 'Accessories', 'quantity_sold' => rand(80, 250), 'unit_price' => 19.95, 'total_revenue' => 0, 'sale_date' => '2023-03-18'], ] ], 'user_profiles' => [ 'columns' => ['user_id', 'username', 'email', 'registration_date', 'last_login'], 'rows' => [ ['user_id' => 101, 'username' => 'johndoe', 'email' => 'john.doe@example.com', 'registration_date' => '2022-01-10', 'last_login' => '2023-03-18 10:00:00'], ['user_id' => 102, 'username' => 'janismith', 'email' => 'jane.smith@example.com', 'registration_date' => '2022-02-15', 'last_login' => '2023-03-17 14:30:00'], ] ] ]; if (isset($availableTables[$tableName])) { $tableData = $availableTables[$tableName]; // Simulate calculating total_revenue for sales_overview if ($tableName === 'sales_overview') { foreach ($tableData['rows'] as &$row) { // Use reference to modify array directly $row['total_revenue'] = $row['quantity_sold'] * $row['unit_price']; } unset($row); // Unset reference } // Simulate column selection $selectedColumns = ($columns === ['*'] || empty($columns)) ? $tableData['columns'] : $columns; $filteredRows = []; foreach ($tableData['rows'] as $row) { $newRow = []; foreach ($selectedColumns as $col) { if (array_key_exists($col, $row)) { $newRow[$col] = $row[$col]; } } $filteredRows[] = $newRow; } // Ensure the 'columns' key in the output matches the actual columns returned $finalColumns = !empty($filteredRows) ? array_keys($filteredRows[0]) : $selectedColumns; return ['columns' => $finalColumns, 'rows' => $filteredRows]; } else { error_log("DB Handler: Unknown table '$tableName'"); return ['error' => "Database table not found or not simulated: $tableName"]; } } // Example of how you might call this (not used by data_provider.php directly like this) /* if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) { header('Content-Type: application/json'); $testTable = $_GET['table'] ?? 'sales_overview'; $simulatedData = queryDatabase($testTable, $_GET['cols'] ?? ['*']); if (isset($simulatedData['error'])) { http_response_code(404); } echo json_encode($simulatedData); } */ ?>