Con questo tutorial vedremo come utilizzare combinatamente PHP e MySQL per realizzare un semplice ma efficace contatore di visite/accessi.
Definiamo per prima cosa la struttura della tabella nel database MySQL. Chiameremo tale tabella "contatore":
Campo | Tipo |
pagina | int(4) |
visite | int(6) |
E’ possibile creare la tabella eseguendo la query SQL:
CREATE TABLE contatore (pagina INT(4) NOT NULL, visite INT(6) DEFAULT 0 NOT NULL)
Il campo "pagina" sarà utilizzato per memorizzare l’identificativo univoco della pagina, in modo tale da poter conoscere il numero di visite di ciascuna pagina. Il campo "visite" conteggerà invece il numero di accessi.
Vediamo quindi come programmare lo script PHP per accedere al database, aggoirnare il numero delle visite e visualizzarlo.
Per prima cosa ogni pagina deve avere un numero identificativo univoco, che verrà memorizzato nel campo "pagina" della tabella nel database.
Poi effettuiamo la connessione al database.
<?php
// identificativo numerico della pagina
$pagina = 1;
// connessione al database MySQL
mysql_connect("localhost", "username", "password");
?>
Una volta effettuata la connessione al database MySQL dobbiamo incrementare il numero di visite della pagina. Nel caso non fosse presente la cosa migliore è inserirla.
<?php
// identificativo numerico della pagina
$pagina = 1;
// connessione al database MySQL
mysql_connect("localhost", "username", "password");
// numero di visite attuali
$res = mysql_query("UPDATE contatore SET visite = visite + 1 WHERE pagina = $pagina");
if (!mysql_num_rows($res)){
// pagina non presente nel database
// aggiungo la pagina nella tabella
mysql_query("INSERT INTO contatore (pagina, visite) VALUES ($pagina, 1)");
}
?>
A questo punto non rimane altro che visualizzare il numero di visite della pagina. Per fare ciò modifichiamo il codice in questo modo:
<?php
// identificativo numerico della pagina
$pagina = 1;
// connessione al database MySQL
mysql_connect("localhost", "username", "password");
// numero di visite attuali
$res = mysql_query("UPDATE contatore SET visite = visite + 1 WHERE pagina = $pagina");
if (!mysql_num_rows($res)){
// pagina non presente nel database
// aggiungo la pagina nella tabella
mysql_query("INSERT INTO contatore (pagina, visite) VALUES ($pagina, 1)");
}
// visualizzo il numero di visite
$res = mysql_query("SELECT visite FROM contatore WHERE pagina = $pagina");
$visite = mysql_fetch_assoc($res);
echo "La pagina è stata visitata ".$visite['visite']." volte";
?>
Il gioco è fatto. Potete usare lo stesso codice in tutte le pagine del vostro sito, a patto che per ognuna cambiate l’identificativo di pagina, che in questo caso era 1.