Štatistika prístupov cez PHP a MySql - I

4.11.2003

0 panak     star



Na tomto príklade si ukážeme, ako sa dá veľmi jednoducho pomocou PHP a MySql databáz sledovať návštevnosť na vašich stránkach. Samozrejmosťou je neustála komunikácia s vašou databázou, t.j. pri každom otvorení akejkoľvek stránky je treba poslať o tom záznam. Jednoduhým manévrovaním s príkazmi MySql sa dá jednoducho spočítať, koľko unikátnych hostí sa na vašej stránke objavilo v posledných dňoch a koľko stránok si otvorili.

Takže konkrétnejšie to vyzerá asi takto. Ako prvý krok je potrebné vytvoriť databázu, resp. tabuľku, do ktorej budeme ukladať získané informácie. Vytvoríme nasl. tabuľku, do ktorej budeme zaznamenávať IP adresu návštevníka a dátum kedy nás poctil svojou návštevou :

mysql> create table PRISTUPY (IP text, DATUM date);

alebo

$host =`nazov db servera`;
$user =`vlastnik databazy`;
$pass = `heslo pre vstup do databázy`;
$spojenie=mysql_connect($host,$user,$pass);
mysql_select_db($databaza,$spojenie);
$vysledok=MySQL_Query("create table PRISTUPY (IP text, DATUM date)");
mysql_close($spojenie);

Ďalej je potrebné vložiť do zdrojového súboru nasledovný kus kódu, ktorý pri každom otvorení zašle do databázy informáciu, že niekto browsuje po našej stránke.

$spojenie=mysql_connect($host,$user,$pass);
mysql_select_db($databaza,$spojenie);
$ip = $REMOTE_ADDR;
$vysledok=MySQL_Query("insert into PRISTUPY values('".$ip."',current_date)");
mysql_close($spojenie);

Dostali sme sa teda do vlastnej databázy, zistili IP adresu návštevníka a poslali ju spolu s aktuálnym dátumom do databázy. Teraz sme schopný kontrolovať aspoň zhruba pohyb po našich stránkach. Samozrejme, že tabuľku je možné rozšíriť o ďalšie údaje, ktoré nás zaujímajú. Odporúčam napr. čas otvorenia stránky, názov stránky, ktorú návš. otvoril, adresu odkiaľ prišiel návštevník a mnohé iné vylepšenia.

Pokročme ďalej a pokúsme sa spracovať získané informácie z databázy. Môžeme si napr. vytvoriť stránku, kde si vytvoríme prehľad prístupov na naše stránky podľa času, dátumu, počtu prístupov, maximálneho počtu návštevníkov v istom časovom rozpätí a pod.

Na nasledujúcom príklade si ukážeme, ako možno z databázy dostať počet unikátnych hostí a počet otvorených stránok za posledných pár dní pomocou dvoch riadkov. Otvoríme databázu podobne ako v prvom príklade :

$spojenie=mysql_connect($host,$user,$pass);
mysql_select_db($databaza,$spojenie);

Prvým príkazom vytiahneme z databázy počet unikátnych hostí za posledných 10 dní a druhým príkazom počet otvorených stránok za posledných dní a necháme si zoradiť tieto údaje podľa dátumu, kde v prvom riadku bude dnešný dátum :

$unikatny_hostia=mysql_query("select DATUM,count(IP) as UNIKATNY from PRISTUPY group by DATUM order by DATUM desc limit 10");
$pocet_pristupov=mysql_query("select DATUM,count(distinct(IP)) as PRISTUPOV from PRISTUPY group by DATUM order by DATUM desc limit 10");

Data máme, môžeme s nimi začať pracovať. Postupne budeme načítavať jeden záznam za druhým a vypisovať ho do tabuľky, framu alebo iných inštancií, ktoré chceme použiť na zobrazenie. V kóde je použitá ešte jedna PHP funkcia, ktorá `rozseká` dátum z pôvodného formátu YYYY-MM-DD do troch rôznych premenných, ktoré uchovávajú deň, mesiac a rok.

while($udaj1=MySQL_Fetch_Array($pocet_pristupov))
   {
      list($rok,$mesiac,$den)=explode('-',$udaj1["DATUM"]);
      echo("$den.$mesiac.$rok");
      echo($udaj1["PRISTUPOV"]);
    }
while($udaj2=MySQL_Fetch_Array($unikatny_hostia))
   {
      echo($udaj2["UNIKATNY"]);
    }
mysql_close($spojenie);

Už stačí len pridať formátovanie a máte prehľad prístupov a unikátnych hostí zoradených podľa dní, ktorý môžete použiť napr. na súkromnú štatistiku na vašich stránkach.


   Najlepšia fotka z divokej vody 2003     späť na zoznam článkov     Ako vytvoriť fórum na webe ?   

Whitewater rafting, kayaking, expeditions, results and photos