I min artikel serie vil jeg beskrive hvordan man nemt kan lave en counter i PHP/MySQL. I denne første artikel vil vi lave en simpel counter der kun der kun gemmer information om hvor mange der har besøgt sitet. Vi vil lave to versioner. En tekst baseret og en der viser tallet grafisk. Men lad os nu hellere begynde...
MySQL databasen
Før vi starter med at lave nogle filer skal vi lige have oprettet en tabel i din MySQL database. Her kommer MySQL filen som du kan dumpe i din egen database f.eks. via phpMyAdmin. Jeg har lagt min tabel i databasen "test".
CREATE TABLE counter (
id int(32) NOT NULL auto_increment,
hits int(32) NOT NULL default '0',
PRIMARY KEY (id)
);
INSERT INTO counter VALUES (1,'0');
Som i kan se er det en meget simpel tabel. Vi opretter et id som skal holde styr på databasen. Og så et felt hits der skal indeholder hvor mange hits siden har haft. Derefter indsætter vi bare et 0 (nul) i hits.
Nu skal vi kode PHP!
Nu er det på tide at kode noget PHP! Scriptet består af en enkelt fil kaldet counter.php. Scriptet skal så kaldes via et andet PHP dokument men det kommer vi til! Filen counter.php skal se således ud:
<?PHP
// Opret forbindelse til MySQL og vælg database
$conn = mysql_connect("DIN_HOST","DIN_BRUGER","DIT_PASSWORD");
mysql_select_db("DIN_DB");
// Send MySQL sætning afsted for at finde ud af hvor mange
// hits der er i tabellen
$query = mysql_query("SELECT hits FROM counter");
$row = mysql_fetch_array($query);
// Put værdien i en variabel
$hits = $row["hits"];
// Opdater antallet med én
$hits++;
// Oppdater databasen med den nye værdi
mysql_query("UPDATE counter SET hits = '$hits'");
// Fortæl brugere hvad nummer han/hun er
echo ("Du er besøgende nummer: $hits");
// Luk forbindelsen til MySQL
mysql_close($conn);
?>
Da filen er kommenteret hele vejen igennem vil jeg ikke forklare nærmere om hvad scriptet gør. Det burde være klart! Husk at erstatte værdierne DIN_HOST, DIN_BRUGER, DIT_PASSWORD og DIN_DB med værdier der passer med din server. Scriptet kan jo godt køres selvstændigt men vil man køre det sammen med en anden fil kan hele scriptet kaldes med denne komando i ethvert PHP dokument:
<?PHP
include ("counter.php");
?>
Den komando inkluderer simpelt hen counteren i dit dokument. Komandoen kan iøvrigt også bruges til f.eks. menuer, headere og footere som man tit bruger på ens hjemmeside!
Grafisk counter
Som jeg nævnte i begyndelsen skal vi også lave en grafisk counter. De er faktisk meget nemt! Vi skal bruge 10 forskellige billeder. Billede med tallene fra 0-9. Du kan selv lave nogle eller du kan downloade en zip fil
her der indeholder nogle jeg har lavet! Du skal lægge de 10 billede i samme mappe som
counter.php. Filerne skal iøvrigt have navnene
null.jpg,
one.jpg,
two.jpg osv. Så laver vi en ny
counter.php fil. Den skal se ud som flg.:
<?PHP
// Opret forbindelse til MySQL og vælg database
$conn = mysql_connect("DIN_HOST","DIN_BRUGER","DIT_PASSWORD");
mysql_select_db("DIN_DB");
// Send MySQL sætning afsted for at finde ud af hvor mange
// hits der er i tabellen
$query = mysql_query("SELECT hits FROM counter");
$row = mysql_fetch_array($query);
// Put værdien i en variabel
$hits = $row["hits"];
// Opdater antallet med én
$hits++;
// Oppdater databasen med den nye værdi
mysql_query("UPDATE counter SET hits = '$hits'");
// Nu bytter vi så tallene ud med billeder
$hits = eregi_replace("0","<img src="null.jpg">","$hits");
$hits = eregi_replace("1","<img src="one.jpg">","$hits");
$hits = eregi_replace("2","<img src="two.jpg">","$hits");
$hits = eregi_replace("3","<img src="three.jpg">","$hits");
$hits = eregi_replace("4","<img src="four.jpg">","$hits");
$hits = eregi_replace("5","<img src="five.jpg">","$hits");
$hits = eregi_replace("6","<img src="six.jpg">","$hits");
$hits = eregi_replace("7","<img src="seven.jpg">","$hits");
$hits = eregi_replace("8","<img src="eight.jpg">","$hits");
$hits = eregi_replace("9","<img src="nine.jpg">","$hits");
// Fortæl brugere hvad nummer han/hun er
echo ("Du er besøgende nummer: $hits");
// Luk forbindelsen til MySQL
mysql_close($conn);
?>
Jeg vil som ikke sige så meget til den nye kode. Vi bytter simpelt hen alle tallene ud med img tags så vi ser billeder istedet for almindelige tal. Hvis du vil vide mere om funktionen eregi_replace(); kan du slå den op i PHP manualen.
Jeg håber at du har kunne drage nytte af min artikel så den ikke er blevet skrevet forgæves c:) Så er der kun tilbage at sige - vi ses i part 2!
Kommentarer (8)
ok god artikel
Virkelig god artikel, Var på udkig efter en counter så, Nice work
!
Nice artikel. Simpelt, men nyttigt.
hmm... det vil altså sige, at hvis man vil gøre det sådan, så counteren lægger 1 til antallet af besøgende på index.php, men kun udskriver antallet på statistik.php, så skal man bare dele counter.php op i 2 dele, en på hver side?
God og let artikel ! Let at forstå, let at rette, let at arbejde på.!
5 fra mig !
Hvis min side er hosted hos frip.dk skal koden så se således ud:
("http://www.frip.dk","sixhoej","blablabla");
Hvis min side er hosted hos frip.dk skal koden så se således ud:
("http://www.frip.dk","sixhoej","blablabla");
Go artikel, let at forstå og let at bruge
Du skal være
logget ind for at skrive en kommentar.