Rysowanie wykresów z bazy MySQL za pomocą PHP

Rysowanie wykresów z bazy danych to jedna z najbardziej przydatnych funkcji, jakie możesz dodać do swojej aplikacji webowej. Ułatwia wizualizację danych i sprawia, że użytkownicy mogą szybciej zrozumieć złożone informacje. W tym artykule pokażę Ci krok po kroku, jak za pomocą PHP i biblioteki Chart.js stworzyć wykresy, bazując na danych przechowywanych w bazie MySQL.

Nie martw się, jeśli brzmi to trochę skomplikowanie. Omówimy wszystko w prostych słowach, a na końcu zobaczysz, jak łatwo można to zrobić.

Dlaczego warto rysować wykresy z bazy danych?

Nie oszukujmy się – surowe dane w tabelach są nudne i trudne do analizy. Ludzie zdecydowanie lepiej przyswajają informacje wizualne. Wykresy pozwalają w prosty sposób:

  • Śledzić trendy (np. sprzedaż w czasie).
  • Porównywać wartości (np. różnice w wynikach różnych działów firmy).
  • Analizować proporcje (np. udział poszczególnych produktów w sprzedaży).

Co więcej, to świetny sposób, by Twoja aplikacja wyglądała bardziej profesjonalnie i nowocześnie.

Co potrzebujesz do startu?

Zanim zaczniemy, upewnij się, że masz:

  1. Zainstalowany serwer lokalny – np. XAMPP lub WAMP.
  2. Działającą bazę MySQL z danymi do wykorzystania.
  3. Środowisko PHP (wystarczy standardowa konfiguracja z serwera lokalnego).
  4. Bibliotekę Chart.js – jest to darmowa i bardzo popularna biblioteka do tworzenia wykresów.

Krok 1: Przygotowanie bazy danych

Najpierw musimy mieć dane, które będziemy wizualizować. Załóżmy, że mamy bazę danych o nazwie sklep, a w niej tabelę sprzedaz z następującą strukturą:

CREATE TABLE sprzedaz (
    id INT AUTO_INCREMENT PRIMARY KEY,
    produkt VARCHAR(50),
    ilosc INT,
    data_sprzedazy DATE
);

Dodajmy przykładowe dane:

INSERT INTO sprzedaz (produkt, ilosc, data_sprzedazy) VALUES
('Laptop', 10, '2024-11-01'),
('Smartfon', 15, '2024-11-02'),
('Tablet', 7, '2024-11-03'),
('Laptop', 12, '2024-11-04'),
('Smartfon', 20, '2024-11-05');

Krok 2: Konfiguracja PHP i połączenie z bazą MySQL

Teraz potrzebujemy skryptu PHP, który połączy się z naszą bazą danych i pobierze dane. Stwórz plik dane.php z następującą zawartością:

<?php
// Dane do połączenia z bazą
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'sklep';

// Połączenie z bazą
$conn = new mysqli($host, $user, $password, $database);

// Sprawdzenie połączenia
if ($conn->connect_error) {
    die('Błąd połączenia: ' . $conn->connect_error);
}

// Pobranie danych z tabeli sprzedaz
$sql = "SELECT produkt, SUM(ilosc) AS suma FROM sprzedaz GROUP BY produkt";
$result = $conn->query($sql);

// Przygotowanie danych do wykresu
$produkty = [];
$sprzedaz = [];

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $produkty[] = $row['produkt'];
        $sprzedaz[] = $row['suma'];
    }
}

// Zwracanie danych w formacie JSON
echo json_encode([
    'produkty' => $produkty,
    'sprzedaz' => $sprzedaz
]);

$conn->close();
?>

Ten skrypt pobiera dane z bazy i formatuje je w JSON – idealnym formacie do pracy z JavaScriptem.

Krok 3: Instalacja Chart.js

Teraz potrzebujemy biblioteki Chart.js. Możesz ją pobrać z oficjalnej strony lub zaimportować bezpośrednio z CDN. W naszym przykładzie skorzystamy z CDN.

Krok 4: Tworzenie wykresu

Stwórz nowy plik HTML, np. index.html, i dodaj do niego następujący kod:

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Wykres sprzedaży</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
    <h1>Wykres sprzedaży produktów</h1>
    <canvas id="wykresSprzedazy" width="400" height="200"></canvas>

    <script>
        // Pobieranie danych z PHP
        fetch('dane.php')
            .then(response => response.json())
            .then(data => {
                const ctx = document.getElementById('wykresSprzedazy').getContext('2d');

                // Tworzenie wykresu
                new Chart(ctx, {
                    type: 'bar', // Typ wykresu: słupkowy
                    data: {
                        labels: data.produkty, // Etykiety (np. produkty)
                        datasets: [{
                            label: 'Sprzedaż (szt.)',
                            data: data.sprzedaz, // Dane do wykresu
                            backgroundColor: [
                                'rgba(255, 99, 132, 0.2)',
                                'rgba(54, 162, 235, 0.2)',
                                'rgba(255, 206, 86, 0.2)',
                                'rgba(75, 192, 192, 0.2)',
                                'rgba(153, 102, 255, 0.2)'
                            ],
                            borderColor: [
                                'rgba(255, 99, 132, 1)',
                                'rgba(54, 162, 235, 1)',
                                'rgba(255, 206, 86, 1)',
                                'rgba(75, 192, 192, 1)',
                                'rgba(153, 102, 255, 1)'
                            ],
                            borderWidth: 1
                        }]
                    },
                    options: {
                        scales: {
                            y: {
                                beginAtZero: true
                            }
                        }
                    }
                });
            })
            .catch(error => console.error('Błąd: ', error));
    </script>
</body>
</html>

Krok 5: Testowanie projektu

Teraz wystarczy, że uruchomisz serwer lokalny i otworzysz plik index.html w przeglądarce. Jeśli wszystko działa poprawnie, zobaczysz wykres przedstawiający sprzedaż poszczególnych produktów.

Jak to działa?

  1. PHP łączy się z bazą MySQL, pobiera dane i formatuje je w JSON.
  2. JavaScript pobiera dane z pliku dane.php przy użyciu funkcji fetch().
  3. Chart.js wykorzystuje te dane do stworzenia dynamicznego wykresu.

Wykresy to świetny sposób na ożywienie Twojej aplikacji i lepsze zrozumienie danych. Dzięki PHP i Chart.js możesz szybko stworzyć dynamiczne wizualizacje, które będą zarówno estetyczne, jak i funkcjonalne. Teraz, gdy znasz podstawy, możesz eksperymentować z różnymi typami wykresów – liniowymi, kołowymi, a nawet bardziej zaawansowanymi jak radarowe czy bąbelkowe.

Szukasz taniego i dobrego hostingu dla swojej strony www? - Sprawdź Seohost.pl