setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { die("Connection failed: " . $e->getMessage()); } // Fetch data $Data = []; $stmt = $conn->query("SELECT * FROM temp ORDER BY ID;"); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $Data[] = $row; } // Close DB connection $conn = null; // Extract columns $labels = array_column($Data, 'Date'); $temps = array_column($Data, 'Temp'); // Convert dates to numeric values (e.g. index) for regression $x_vals = range(0, count($temps) - 1); $y_vals = $temps; // Linear regression calculation (y = a * x + b) $n = count($x_vals); $sum_x = array_sum($x_vals); $sum_y = array_sum($y_vals); $sum_xy = array_sum(array_map(fn($x, $y) => $x * $y, $x_vals, $y_vals)); $sum_x2 = array_sum(array_map(fn($x) => $x * $x, $x_vals)); $slope = ($n * $sum_xy - $sum_x * $sum_y) / ($n * $sum_x2 - $sum_x ** 2); $intercept = ($sum_y - $slope * $sum_x) / $n; // Generate trend line data $trendLine = array_map(fn($x) => round($slope * $x + $intercept, 2), $x_vals); ?> Temperature Chart with Trend Line

Temperature Trend: Poland Average