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.phpprzy 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.