Foros del Web » Programando para Internet » PHP »

Problema con contador

Estas en el tema de Problema con contador en el foro de PHP en Foros del Web. Buena noches a todos/as, he montado un contador con algunos trozos de code que he ido pillando y bueno ahora esta todo correcto menos una ...
  #1 (permalink)  
Antiguo 03/05/2009, 03:41
 
Fecha de Ingreso: marzo-2009
Ubicación: España
Mensajes: 371
Antigüedad: 15 años, 7 meses
Puntos: 5
Problema con contador

Buena noches a todos/as, he montado un contador con algunos trozos de code que he ido pillando y bueno ahora esta todo correcto menos una cosa.

He dejado el contador para que no repita la ip durante x tiempo y así tener las visitas algo más reales, pero el problema es que al eliminar de la bbdd las ip registradas para no tener que almacenar todas las visitas pues el contador se me pone a 0 cuando debería seguir mostrándome las visitas en base al id y no a la ip.

He estado mirando y haciendo pruebas pero la verdad es que no se mucho y el que no sabe es como el que no ve, y he optado por pediros ayuda.

Aquí os dejo mi code del counter a ver si me podéis decir donde esta el error de la consulta que manda al contador las visitas.

Código:
<?php
//se requiere el archivo para validar los datos de usuario de bdd para conectar
require('include/config.php');

$ip = $_SERVER['REMOTE_ADDR'];
$fecha = date('Y-m-d H:i:s');
$segundos = time();
$can = "60";
$resta = $segundos-$can;


//se asignan la variables
$sql = "SELECT segundos, ip ";
$sql.= "FROM contador WHERE segundos >= $resta AND ip LIKE '$ip' ";
$es = mysql_query($sql, $conexion) or die("Error en la conexión a la base de datos: ".mysql_error);


//se buscan los registros que num de seg mayor a num de seg hace una hora e IP
if(mysql_num_rows($es)>0)
{//no se cuenta la visita
}
else
{
$sql = "INSERT INTO contador (id, ip, fecha, segundos) ";
$sql.= "VALUES ('','$ip','$fecha','$segundos')";
$es = mysql_query($sql, $conexion) or die("Error al grabar un mensaje: ".mysql_error);
}


//creamos el condicionamiendo para sumarlo o no.
$sql = "SELECT * ";
$sql.= "FROM contador WHERE id ";
$es = mysql_query($sql, $conexion) or die("Error al leer base de datos: ".mysql_error);
$visitas = mysql_num_rows($es);
$men=$men .
"<table width='6%' border='0' height='25' bgcolor='#ffffff'>" . chr(10);
$men=$men . "<tr>" . chr(10);
$men=$men . "<td><font color=#000000>Visitas:$visitas</font></td>" . chr(10);
$men=$men .
"</tr>" . chr(10);
$men=$men . "</table>" . chr(10);

mysql_close($conexion);
?>
Muchas gracias.

Un saludo
  #2 (permalink)  
Antiguo 03/05/2009, 18:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Problema con contador

Tema trasladado desde Bases de Datos

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #3 (permalink)  
Antiguo 03/05/2009, 20:37
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Problema con contador

Lo que tiene que estar mal entonces es el diseño de tu base de datos. Necesitas tener 2 tablas aparte.

La primera es donde se almacenara el numero de visitas totales (puede ser también un archivo de texto en vez de una tabla)
Y otra donde se guardan los IP que ya han sido registrados.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:20.