Hola
yo estoy ahora trabajando en un tema como ese, por ahora tengo dos tablas de la BD,
fechas_con y contador_con
en
fechas_con hay
id_fecha primarykey autoincrement
fecha (date)
y en
contador_con
id_visita primarykey autoincrement
ip char
fecha (date)
web_ref (char) para almacenar de donde me viene la visita
pagina_vista char donde almaceno la pagina visitada
id_fecha (int)
Luego para mostrar los resultados, hago un while a la tabla fechas_con para sacar las fechas y dentro de ese WHILE hago otro con la tabla contador_con para sacar las visitas por cada dia,
Hay que mejorarlo, pero te puede orientar bastante, y ademas ahora le estoy implementando que me haga una grafica con el numero de visitas que hago con un tipo de consulta SQL COUNT(*) que me da el numero de IP´s distintas quie he tenido en el dia
Te dejo la funcion cuenta_visita
Código PHP:
function Saber_IP(){
if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown")){
$ip = getenv("HTTP_CLIENT_IP");
}
elseif(getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif(getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown")){
$ip = getenv("REMOTE_ADDR");
}
elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){
$ip = $_SERVER['REMOTE_ADDR'];
}
else {
$ip = "Unknown";
}
return $ip;
}
function cuenta_visita (){
$ip = Saber_Ip();//obtengo ip
$fecha = date("Y-m-d");
$hora = date("H:i:s");
//$ref = gethostbyaddr($ip); //Obtiene el host de esa IP
$ref = $_SERVER['HTTP_REFERER']; //web de referencia
$vista = $_SERVER['PHP_SELF'];//cojo la pagina visitada
//busco si existe la fecha de hoy
$query1 = " SELECT * FROM fechas_con ORDER BY fecha DESC";
$result1 = mysql_query($query1) or die( mysql_error () );
$row1 = mysql_fetch_array ($result1);
$id_fecha = $row1['id_fecha'];
if ( $fecha == $row1['fecha']){ //si la fecha ya esta en la base inserto la visita
$query = 'INSERT INTO contador_con (ip, fecha,web_ref,pagina_vista, id_fecha)
VALUES (\''.$ip.'\',\''.$hora.'\',\''.$ref.'\',\''.$vista.'\',\''.$id_fecha.'\')';
$result = mysql_query($query) or die("error de insert1");
}else{ //si la fecha no esta en la base inserto fecha y visita
$query2 = 'INSERT INTO fechas_con (fecha)
VALUE (\''.$fecha.'\')';
$result2 = mysql_query($query2) or die("error de insert2");
//busco la id_visita para insertarla en la otra tabla
$query3 = " SELECT id_fecha FROM fechas_con WHERE fecha = '$fecha'";
$result3 = mysql_query($query3) or die("error de select query3");
$row3 = mysql_fetch_array ($result3);
$id_fecha = $row3['id_fecha'];
//inserto la visita
$query = 'INSERT INTO contador_con (ip, fecha,web_ref,pagina_vista, id_fecha)
VALUES (\''.$ip.'\',\''.$hora.'\',\''.$ref.'\',\''.$vista.'\',\''.$id_fecha.'\')';
$result5 = mysql_query($query) or die("error de insert4");
}
}