---/ Wstęp /---
Artykuł ten ma pokazać jeden ze sposobów na "wygenerowanie"
wykresu słupkowego dla jakiś danych.
---/ Przygotowania /---
Musimy najpierw w dowolnym programie graficznym przygotować
grafikę 1x1 px dowolnego koloru najlepiej w formacie gif lub png (np. punkt.gif)
Teraz utwórzmy plik 'wykres.php' w którym to będzie cały nasz potrzebny kod.
---/ Założenia /---
Na potrzeby artykułu załóżmy, że w bazie danych trzymane będą nasze dzienne wejścia na stronę.
Oto kod sql
Kod:
CREATE TABLE `wykres` (
`data` date NOT NULL default '0000-00-00',
`odwiedzin` int(11) NOT NULL default '0'
) TYPE=MyISAM;
---/ Etap pierwszy /---
Najpierw do naszego pliku 'wykres.php' dodajemy linijki odpowiedzialne za połączenie się z naszą bazą danych.
Kod:
<?php
mysql_pconnect("localhost", "root", "haslo");
mysql_select_db("moja_baza");
?>
Teraz pobieramy wszystkie potrzebne nam rekordy z danego miesiąca.
Kod:
<?php
$dzis = date("Y-m-d");
list($rok,$miesiac,$dzien) = split('-',$dzis);
$sql = "SELECT data, odwiedzin FROM wykres WHERE DATE_FORMAT(data, '%m') = '$miesiac' GROUP BY data";
$result = mysql_query($sql);
?>
---/ Etap drugi /---
Teraz przygotujmy sobie pomocniczą tablicę zawierającą dane, ile każdy z miesięcy
ma dni. Następnie utworzymy tabelę zawierającą po jednym rekordzie dla każdego dnia.
Kod:
<?php
$miesiace = array('01' => 31,
'02' => 28,
'03' => 31,
'04' => 30,
'05' => 31,
'06' => 30,
'07' => 31,
'08' => 31,
'09' => 30,
'10' => 31,
'11' => 30,
'12' => 31
);
$tblDni = array();
for($x = 1; $x <= $miesiace[$miesiac]; $x++)
{
$tblDni[$x] = 0;
}
?>
---/ Etap trzeci /---
Teraz pobrane wcześniej dane z bazy będziemy umieszczać w odpowiednim miejscu
w tablicy $tblDni.
Kod:
<?php
while ($row = mysql_fetch_array($result))
{
list($rok2,$miesiac2,$dzien2) = split('-', $row['data']);
$stamp = mktime("", "", "", "", $dzien2, "");
$curr = date("j", $stamp);
$show = $row['odwiedzin'];
$tblDni[$curr] = $show;
}
?>
---/ Etap czwarty /---
Pozostaje już tylko wyświetlenie wszystkiego
Kod:
<?php
$wartosci = '';
$daty = '';
foreach($tblDni as $key => $value)
{
$wartosci .= '<td align="center" valign="bottom">'.$value.'<br><img src="punkt.gif" width="5px" height="'.$value.'px"></td>';
}
foreach($tblDni as $key => $value)
{
$daty .= '<td align="center" valign="bottom">'.$key.'</td>';
}
echo '<table border=0 cellpadding=0 cellspacing=2>
<tr><th colspan=100%>Odwiedzin</th></tr>
<tr> '.$wartosci.' </tr><tr>'.$daty.'</tr></table><br><br>';
?>
---/ Kontakt /---
Jeśli masz jakieś uwagi bądź pytania skontaktuj się ze mną
vee@irc.pl
'Vengeance'
-----------------------
Artykuł można umieścić gdzieś indziej TYLKO za zgodą autora (vee@irc.pl)
Skrypt można dowolnie modyfikować. Jego używanie jest bezpłatne.
Nie trzeba nigdzie umieszczać informacji o autorze skryptu.