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:
- Zainstalowany serwer lokalny – np. XAMPP lub WAMP.
- Działającą bazę MySQL z danymi do wykorzystania.
- Środowisko PHP (wystarczy standardowa konfiguracja z serwera lokalnego).
- 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?
- PHP łączy się z bazą MySQL, pobiera dane i formatuje je w JSON.
- JavaScript pobiera dane z pliku
dane.php
przy użyciu funkcjifetch()
. - 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.