Foros del Web » Programando para Internet » PHP »

problema con contador de visitas

Estas en el tema de problema con contador de visitas en el foro de PHP en Foros del Web. Hola tengo un problema, espero me ayuden, tengo un contador de visitas que funciona perfectamente y me da el total de las visitas, pero no ...
  #1 (permalink)  
Antiguo 18/06/2014, 02:04
 
Fecha de Ingreso: febrero-2011
Mensajes: 28
Antigüedad: 13 años, 2 meses
Puntos: 0
problema con contador de visitas

Hola tengo un problema, espero me ayuden, tengo un contador de visitas que funciona perfectamente y me da el total de las visitas, pero no me sale las visitas de hoy, no veo que hago mal:

Código PHP:
<?php
include('conf.php');
$ip $_SERVER['REMOTE_ADDR'];
$sql="select ip, TIMEDIFF(NOW(), fecha), fecha, num_visitas from contador where ip='$ip'";
$rs=mysql_query($sql) or die("Problemas al ejecutar select SQL ".mysql_error());
$fila=mysql_fetch_array($rs);

$tiempo=$fila[1];

$num_visitas=$fila[3]; 

$horas_t=substr($tiempo,0,2);

$tiemRes 12;

if (
mysql_num_rows($rs)==0)

{

$sql="insert into contador(ip, num_visitas, fecha) values('$ip', 1, NOW())";

mysql_query($sql) or die("Problemas al ejecutar la insert SQL ".mysql_error());

}

elseif (
mysql_num_rows($rs) > && $horas_t $tiemRes)

{

$sql="update contador set fecha=NOW(), num_visitas='$num_visitas'+1 where ip='$ip'";

mysql_query($sql) or die("Problemas al ejecutar update SQL ".mysql_error());

}
$sql="select sum(num_visitas) from contador"//Obtenemos la suma totales

$rs=mysql_query($sql) or die("Problemas al ejecutar select SQL".mysql_error());

$fila=mysql_fetch_array($rs); //Almacenanos el resultado de la consulta en un arreglo

$num_visitas=$fila[0]; //Número de visitas totales

mysql_close($link);
?>
eh probado con esto pero me sale "0"

Código PHP:
$sql="select count(fecha) from contador fecha=NOW()"
  #2 (permalink)  
Antiguo 18/06/2014, 05:53
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: problema con contador de visitas

El problema de usar NOW() para extraer los registros de ese dia es que incluye horarios (hh:mm:ss)

- Para un campo fecha tipo DATE:

Código SQL:
Ver original
  1. .. WHERE fecha=CURDATE()

o lo que es mas rebuscado:

Código SQL:
Ver original
  1. .. WHERE fecha=DATE(NOW())


- Si es DATETIME dices

Código SQL:
Ver original
  1. .. WHERE fecha BETWEEN CURDATE() AND (CURDATE() + INTERVAL 1 DAY)


http://www.w3schools.com/sql/func_now.asp
__________________
Salu2!

Última edición por Italico76; 18/06/2014 a las 06:16
  #3 (permalink)  
Antiguo 18/06/2014, 09:40
 
Fecha de Ingreso: febrero-2011
Mensajes: 28
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: problema con contador de visitas

Gracias Italico76, me funciona la tercera opción. Te agradezco por la ayuda

Pero una consulta porque no me funcionan las mas cortas, ya que el campo que puse para la fecha le di TIPO (datetime).

Gracias de antemano
  #4 (permalink)  
Antiguo 18/06/2014, 10:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: problema con contador de visitas

Cita:
Iniciado por sjuanv2 Ver Mensaje
Pero una consulta porque no me funcionan las mas cortas, ya que el campo que puse para la fecha le di TIPO (datetime).
Porque como te decia todo depende del tipo de dato del campo "fecha" que puede ser un numero entero (y almacenas un TIMESTAMP) o DATE o DATETIME

En el primer caso (TIMESTAMP) almacenas la cantidad de segundos transcurridos desde la era del chupete, algo como 1299762201428

En el segundo caso (DATETIME) almacenas la fecha completa incluida la hora, minutos y segundos (asi que es una cadena larga)

Y en el tercer caso (DATE) almacenas SOLO la fecha y por ende no es compatible totalmente con la solucion para el segundo caso.
__________________
Salu2!
  #5 (permalink)  
Antiguo 18/06/2014, 10:27
 
Fecha de Ingreso: febrero-2011
Mensajes: 28
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: problema con contador de visitas

Gracias de nuevo Italico76, muy agradecido por tu breve explicacion.

Saludos

Etiquetas: contador, fecha, mysql, select, sql
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 03:17.