Bienvenido a datoweb.com!! En este foro podrás encontrar ayuda sobre diseño y desarrollo web en general. Si quieres formar parte de esta comunidad para pedir ayuda o colaborar ayudando a otros usuarios del foro solo tienes que registrarte desde el siguiente enlace: Registrarse en el Foro

Actualización programada de visitas

Buenas,
Hace días que vengo dando vueltas a un asunto y no doy con la solución. Agradecería que alguien me echara una mano.

Resulta que tengo en mi proyecto una función que suma las vistas a los post. Es de este tipo:
$accion_editar = sprintf("UPDATE post SET visitas=(visitas+1) WHERE id_post=%s",
		formatearcadena($datos_verpost['id_post'],'int'));

	$consulta_editar = mysqli_query($conexion,$accion_editar) or die(mysqli_error());
Luego tengo la consiguiente consulta que muestra, entre otros datos, el número de visitas. Es esta:
//CONSULTA A LA BASE DE DATOS
$accion_verpost=sprintf("SELECT * FROM post WHERE estado=1 AND slug=%s",
	formatearcadena($slugpost,'text'));

$consulta_verpost=mysqli_query($conexion,$accion_verpost);
$datos_verpost=mysqli_fetch_assoc($consulta_verpost);
$cantidad_verpost=mysqli_num_rows($consulta_verpost);
El tema es que cada vez que se refresca la página genera una visita que se actualiza en el acto, así una y otra vez, lo que da pie a que algunos usuarios se queden con el dedo pegado a la tecla F5. Aclaro que no me interesa limitar las visitas por ip.

En este contexto, agradecería que alguien me indique la forma de actualizar las vistas cada cierto tiempo en lugar de hacerlo en el acto para, de este modo, y creyendo inútil su acción, disuadir a los que generan visitas vía tecla F5.

Pongo un ejemplo:
Imaginemos que tengo un post en el que genero 50 visitas en dos minutos con la tecla F5 (o salgo y entro esas 50 veces) y veo que no se suman en el acto. Lo normal es que no vea los resultados esperados, me canse y desista. Luego, por ejemplo, que se actualicen las vistas cada 15 minutos mediante algún script, función o cualquier otro método. De este modo el usuario pensará que el incremento se debe a que otros usuarios también entraron en el post en ese periodo de tiempo.

Gracias de antemano a quien pueda ayudarme, y saludos a todos.


0
Puntos
2
Resp
55
Visitas
Por javierBM hace 2 semanas
Principiante offline

Respuesta #1

Hola javier
si se puede hacer eso es algo muy sencillo solo que tendras que modificar tu codigo
tendras que crear una tabla llamada visitas
y luego lo vas a hacerlo a tu gusto
VISITAS
---ip--- -varchar (12) or char 12
-date (datetime)

0
Puntos
Por pablo hace 2 semanas
Experto offline

Respuesta #2

Hola, Pablo. Ante todo, gracias por responder.
Me temo que no me has entendido o yo me he explicado mal.
Tengo donde guardar las vistas en la base de datos. De hecho, se muestran. El tema es que quiero que esas visitas se actualicen en el sitio cada cierto (5,10,15,etc. minutos) tiempo solo las visitas.
Un ejemplo sería este post donde sumas una visita cada vez que recarguas la página. Imaginemos entonces que en cinco minutos has refrescado la página 15 veces, pero el contador se mantiene en la misma cantidad (digamos que 20 visitas). Luego, pasados esos cinco minutos sin moverse, actualiza y suma 15 visitas que tenía el post más las 20 visitas que generaste en ese tiempo, lo que arrojaría un resultado de 35 visitas. Así una y otra vez.
Saludos.
0
Puntos
Por javierBM hace 2 semanas
Principiante offline

Relaccionados

Para comentar Inicia sesión o Registrate