Foros del Web » Programando para Internet » PHP »

contar visitas por mes

Estas en el tema de contar visitas por mes en el foro de PHP en Foros del Web. Hola a todos !!! estoy armando unos contadores de visitas en php y mysql para las entradas de mi sitio... y queria hacer un "Top ...
  #1 (permalink)  
Antiguo 01/11/2009, 08:47
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
contar visitas por mes

Hola a todos !!! estoy armando unos contadores de visitas en php y mysql para las entradas de mi sitio... y queria hacer un "Top del mes" y "Top de semana"... pero ya excede mis conocimientos y no encuentro nada que me sirva por ahi...

como se resetea un campo de una tabla para que digamos en una semana o un mes vuelva ese valor a cero... asi comienza a contar de nuevo...

Estoy utilizando este contador de visitas para mis entradas y secciones:

Código PHP:
<?php 
$link
=mysql_connect("localhost""usuario""password"); 
mysql_selectdb("base",$link); 

$sql="UPDATE entradas SET contador= contador +1 WHERE id ='".$_GET['id']."'"
 
mysql_query($sql) or die (mysql_error()); 
?>
Gracias !!!
  #2 (permalink)  
Antiguo 01/11/2009, 09:06
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: contar visitas por mes

Yo lo que hacia era guardar en el contador la fecha de la visita (poner NOW() en la columna fechavisita de la tabla Visitas).

En base a eso, podes jugar con los querys q hagas a la base de datos.

La tabla entradas tiene la fecha de cada visita?

Saludos.
  #3 (permalink)  
Antiguo 01/11/2009, 09:16
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: contar visitas por mes

Hola... no la tabla entradas tiene la fecha inicial del insert de la entrada... ummm.. de los datos del contador de visitas... solo guardo en el campo "contador" las veces que entran al post...

Estaba pensando.. podria hacer otro campo digamos "contador_semana" y tras tantos segundos (86400 seg = 24h) resetear ese campo... pero ni idea como hacerlo... jejeje
  #4 (permalink)  
Antiguo 01/11/2009, 09:19
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: contar visitas por mes

Te conviene hacer una tabla Visitas y ahi administrarlas de manera mas correcta.
Porque en tu sitio, si presionas F5 se va a contar como una visita no? Osea si entro a la visita suma 1, si doy 10 veces a F5 contaran 11 en total no? Y eso no deberia pasar.

Yo guardaria, para cada entrada a tu (el total) en una columna tal como lo tenes vos. Y luego podria tener una tabla Visitas, y solo guardaria las visitas del ultimo mes (con su ip, su fecha de visita y demas datos que vos quieras guardar).
Cuando veas que el mes cambia, entonces ejecutas desde tu panel de administrador una funcion para vaciar esa tabla Visitas (TRUNCATE TABLE visitas) y las visitas se ponen en cero, pero tu contador no!! Entonces guardarias tus visitas totales, y las mensuales las vas almacenando dependiendo del mes en que estes.

Esa es una idea que se me ocurrio jeje, espero que te sirva.

Saludos.
  #5 (permalink)  
Antiguo 01/11/2009, 09:30
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: contar visitas por mes

Si... lo pense eso... y no esta mala la idea, digamos es mi plan B jejeje... pero bueno queria ver si se podia hacer algo automatico...

"La ley del menor esfuerzo" jajajajaja :P
  #6 (permalink)  
Antiguo 01/11/2009, 09:33
Avatar de MarioAraque
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Valencia
Mensajes: 1.398
Antigüedad: 14 años, 6 meses
Puntos: 265
Respuesta: contar visitas por mes

Si pones contador=0, tu sitio va a quedar con 0 visitas......Si no podes poner otro "contadormensual" y "contadorsemanal", pero la verdad a la larga el mantenimiento se te va a hacer mucho mas dificil......

Si haces una tabla Visitas, tan solo con borrarla una vez al mes lo demas lo tenes hecho, pq con consultas que te devuelvan los resultados de una semana atras, y de todo el mes ( que en definitiva sera toda la tabla entera )....lo tenes re facil!

Cualquier cosa pregunta de nuevo. Espero que te haya servido la informacion.

Saludos.
  #7 (permalink)  
Antiguo 01/11/2009, 10:00
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: contar visitas por mes

Bueno mario gracias por la ayuda... voy a hacer eso.. si se me ocurre algo diferente lo posteo por si a alguien le sirve...

Saludos !!!
  #8 (permalink)  
Antiguo 01/11/2009, 10:45
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: contar visitas por mes

Encontre algo aca en forosdelweb... por si le sirve a alguien.. dejo el link:

forosdelweb(.)com/f18/como-hacer-top-semanal-mas-vistos-semana-527211/
  #9 (permalink)  
Antiguo 01/11/2009, 10:49
Avatar de softmaster  
Fecha de Ingreso: diciembre-2008
Mensajes: 230
Antigüedad: 15 años, 4 meses
Puntos: 12
Respuesta: contar visitas por mes

Código PHP:
<?php

    $id_noticia 
$_GET['id'];
    
$titulo_noticia $_GET['titulo'];

    
$semana_actual date("W-Y"); // Entrega la semana actual del año, ej: 42-2007 (la 42va semana del año 2007)

    
$sql "SELECT id FROM noticias WHERE id = $id_noticia AND fecha = '$semana_actual'";
    
$result mysql_query($sql$conexion);
    if (
mysql_num_rows($result) > 0)
    {
        
$sql_new "UPDATE noticias SET hits = hits + 1 WHERE id = $id_noticia AND fecha = '$semana_actual'";
    }
    else
    {
        
$sql_new "INSERT INTO noticias VALUES ($id_noticia, $titulo_noticia, 1, '$semana_actual')";
    }
    
    
mysql_free_result($result);
    
mysql_query($sql_new$conexion);
    
?>
Muestra los datos:

Código PHP:
 <?php

    $semana_actual 
date("W-Y"); // Entrega la semana actual del año, ej: 42-2007 (la 42va semana del año 2007)
    
$numero_noticias 10;

    
$sql "SELECT id, titulo, hits FROM noticias WHERE fecha = '$semana_actual' ORDER BY hits DESC LIMIT 0, $numero_noticias";
    
$result mysql_query($sql$conexion);
    while(
$r mysql_fetch_assoc($result))
    {
        echo 
$r['titulo'];
    }
    
    
mysql_free_result($result);
        
?>
saludos y exitos !!!
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 13:47.