Foros del Web » Programando para Internet » PHP »

Contador de visitas

Estas en el tema de Contador de visitas en el foro de PHP en Foros del Web. Buscaba en google pero la única manera q encontré es ésta. Código PHP: mssql_query ( "UPDATE table SET visitas = visitas +1 WHERE id = $id" );  Habrá otra forma de contar las visitas, pero ...
  #1 (permalink)  
Antiguo 09/11/2008, 08:27
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Contador de visitas

Buscaba en google pero la única manera q encontré es ésta.
Código PHP:
mssql_query("UPDATE table SET visitas = visitas +1 WHERE id = $id"); 
Habrá otra forma de contar las visitas, pero que se actualice cada 15 visitas que tenga, asi como en los temas de vBulletin, se actualizan cada cierto tiempo para no petar la base de datos, agradecería su respuesta así no haya una mínima solución, Un saludo
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #2 (permalink)  
Antiguo 09/11/2008, 09:08
 
Fecha de Ingreso: abril-2005
Ubicación: Montevideo, Uruguay
Mensajes: 102
Antigüedad: 19 años
Puntos: 0
Respuesta: Contador de visitas

Primero aclararte un concepto: Si estás ejecutando esa consulta cada vez que se corre el script, entonces no estás contando las visitas, estás contando las impresiones. Las visitas tratan de medir la cantidad de usuarios que visitan tu web, en vez de la cantidad de veces que se ven tus páginas. Recuerda que un mismo usuario puede ver muchas páginas.

Respondiendo concretamente. Si lo que quieres es sumar 1 cada vez que un usuario en particular hace 15 impresiones de tu página, lo que podrías hacer es guardar en la sesión del usuario un contador de impresiones, y cuando llegas a 15, reseteas el contador, y ejecutas tu consulta de contador.

Por ejemplo:

Código PHP:
       // sumar una impresión
       
$_SESSION['contador_impresiones'] += 1;

       
// llegamos a quince? sumar una en base de datos
    
if($_SESSION['contador_impresiones'] == 15 )
       {
              
$_SESSION['contador_impresiones'] = 0;
              
mssql_query("UPDATE table SET visitas = visitas +1 WHERE id = $id"); 
       } 
Falta aquí el código de manejo de sesión, que no sé si lo tienes. No sé el $id que estás utlizando qué es. ¿Es el id de usuario?

Espero que te sirva la idea.

Saludos
__________________
Mauricio Etcheverry

WebMaster de YoReparo.com
  #3 (permalink)  
Antiguo 09/11/2008, 13:08
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 17 años, 5 meses
Puntos: 56
Respuesta: Contador de visitas

Muy bueno, claro lo que quiero es imprimir los hits de la página, no las visitas únicas, gracias por aclararlo.
Pero un usuario no visitaría 15 veces la página, si no quiero saber como puede hacer la consulta cuando la página ya tiene 10 o 15 visitas de cualquier usuario, pensándolo bien, creo que no va ser posible.
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #4 (permalink)  
Antiguo 09/11/2008, 13:17
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Contador de visitas

Es la misma idea,

guarda las visitas en una variable de sesion, como quiera que las cuentes, y haciendo lo que te dijeron arriba insertas en la BBDD

Código PHP:
session_start();
//codigo que uses para contar visitas y guardar las visitas en la variable $visitas (sumando)
.
.
.
.
//guardas en variable de sesion
$visitas$_SESSION['visitas'];//guardas en variable de sesion

//compruebas el numero de las visitas para insertar
if($_SESSION['visitas'] == 15 )
       {
              
              
mssql_query("UPDATE table SET visitas = +'$visitas' WHERE id = $id");
              
$_SESSION['visitas'] = 0;
       } 
Esta es la idea que te dieron arriba

Un saludo

Última edición por jaronu; 09/11/2008 a las 13:23
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 16:21.