login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Statistieken > Simpel Statistieken Script (Total, Today)

Simpel Statistieken Script (Total, Today)

Auteur: Gerard - 23 september 2004 - 10:24 - Gekeurd door: Dennisvb - Hits: 10642 - Aantal punten: 4.25 (6 stemmen)





Dit script kan ingezet worden om bij te houden hoeveel bezoekers er totaal zijn geweest en hoeveel hits er zijn geweest. Bezoeken worden bijgehouden per dag en zijn uniek aan de hand van de dag/ipadres combinatie. Mensen die meer kennis hebben van SQL kunnen met dit systeem ook per gebruiker laten zien hoeveel hits hij/zij op die dag heeft gegenereerd op de website, etc.

Changelog

03-05-2005
(Coding Standard) Variabelen buiten de quotes
(Performance) Nieuwe queries
(Fix) Kijken of bezoeker ooit eerder geweest is om datefield te updaten

12-03-2007
(Coding Standard) Compleet herschreven
(Feature) Bijhouden van hits van een bepaald persoon

Code:
SQL query voor de database
  1. CREATE TABLE `counter` (
  2. `ipaddress` varchar(15) NOT NULL default '127.0.0.1',
  3. `date` date NOT NULL,
  4. `hits` int(5) unsigned NOT NULL default '1',
  5. PRIMARY KEY (`ipaddress`,`date`)
  6. ) TYPE=MyISAM;


Code voor de counter pagina die alles afhandelt:
  1. <?php
  2.  
  3. $aCounter = array();
  4. $aCounter['hits'] = array();
  5. $aCounter['visits'] = array();
  6. $aCounter['config'] = array();
  7. $aCounter['config']['table'] = 'counter';
  8.  
  9. $qUpdateVisit = mysql_query("UPDATE `" . $aCounter['config']['table'] . "`
  10. SET `hits` = `hits` + 1
  11. WHERE `ipaddress` = '" . $_SERVER['REMOTE_ADDR'] . "'
  12. AND `date` = CURDATE()");
  13.  
  14. if (mysql_affected_rows() != 1) {
  15.  
  16. $qInsertVisit = mysql_query("INSERT INTO `" . $aCounter['config']['table'] . "` (`ipaddress`, `date`)
  17. VALUES ('" . mysql_real_escape_string($_SERVER['REMOTE_ADDR']) . "',
  18. CURDATE())");
  19.  
  20. }
  21.  
  22. $qGetToday = mysql_query("SELECT COUNT(1), SUM(`hits`)
  23. FROM `" . $aCounter['config']['table'] . "`
  24. WHERE `date` = CURDATE()");
  25.  
  26. $qGetTotal = mysql_query("SELECT COUNT(1), SUM(`hits`)
  27. FROM `" . $aCounter['config']['table'] . "`");
  28.  
  29. $aCounter['visits']['today'] = mysql_result($qGetToday, 0, 0);
  30. $aCounter['visits']['total'] = mysql_result($qGetTotal, 0, 0);
  31. $aCounter['hits']['today'] = mysql_result($qGetToday, 0, 1);
  32. $aCounter['hits']['total'] = mysql_result($qGetTotal, 0, 1);


Daarna is het alleen nog maar een kwestie van het leggen van je verbinding met de database op je eigen pagina en het inladen van deze pagina. Een voorbeeld kan je hieronder vinden.
  1. <?php
  2.  
  3. mysql_connect('localhost', 'root', '********');
  4. mysql_select_db('database');
  5.  
  6. require_once 'counter.inc.php'; // Hier komt natuurlijk de naam van hoe jij de pagina hebt genoemd
  7.  
  8. echo '<pre>', var_dump($aCounter), '</pre>';


Zoals te zien zal zijn in de var dump heb je een array tot je beschikking met daarin de verschillende waardes:
  1. <?php
  2. $aCounter['visits']['today'] // Het aantal unieke bezoekers vandaag
  3. $aCounter['visits']['total'] // Het aantal unieke bezoekers totaal
  4. $aCounter['hits']['today'] // Het aantal hits vandaag
  5. $aCounter['hits']['total'] // Het aantal hits totaal


Die variabelen kunnen dus gebruikt worden.

Mocht je zelf de naam van de tabel (default: counter) willen aanpassen dan dien je de query aan te passen die je eenmalig moet uitvoeren om de tabel aan te maken. Daarna kan je in het counter bestand de waarde van $aCounter['config']['table'] aanpassen naar de naam die jij wilt voor de tabel.Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (11)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.047s