Foros del Web » Programando para Internet » PHP »

Solo muestra una visita

Estas en el tema de Solo muestra una visita en el foro de PHP en Foros del Web. Hola a todos aqui estoy de nuevo lo que pasa es que aun estoy batallando con mi contador de visitas php y mysql: Hasta el ...
  #1 (permalink)  
Antiguo 30/10/2009, 23:36
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Solo muestra una visita

Hola a todos aqui estoy de nuevo lo que pasa es que aun estoy batallando con mi contador de visitas php y mysql: Hasta el momento tengo el siguiente código pero solo me muestra una sola visita y en la consulta que hago a la bd me muestra que tengo varios registros....
El código es el siguiente:
Cita:
$ip = $_server['remote_addr'];
$conbd = new conexionbd();
$conbd->setconectar();

$csql = $conbd->getsql("select * from contador where ip = '".$ip."'");
$result = mysql_num_rows($csql);
if( (mysql_num_rows($csql)) == 0)
{
$csql = $conbd->setsql("insert into contador (ip,fecha) values ('".$ip."', now())");
}
else
{
$csql=$conbd->getsql("select * from contador where ip = '".$ip."' and fecha = curdate()");
$result = mysql_num_rows( $csql );
if( (mysql_num_rows($csql)) == 0)
{
$csql = $conbd->setsql("insert into contador (ip,fecha) values ('".$ip."', now())");
}
}
$result = $conbd->getsql("select * from contador where ip = '".$ip."' and fecha = curdate()");
$count = mysql_num_rows( $result);
echo $count;
  #2 (permalink)  
Antiguo 31/10/2009, 04:54
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: Solo muestra una visita

Si lo estas haciendo desde un servidor local siempre vas a tener una visita por dia nada mas. Si comparas tu ip con la actual, y el dia de la fecha actual con el dia de hoy....entonces siempre te va a dar 1.

Yo comparaba con NOW, y cuando tenia que guardar visitas creaba una tabla visitas, y ponia la IP y la fecha de la visita. Entonces luego comparaba con la hora actual, y si habian pasado X tiempo (el q quieras) sumaba una visita, si no no.

Saludos.
  #3 (permalink)  
Antiguo 31/10/2009, 13:59
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Solo muestra una visita

Lo que pasa es que lo estoy probando en un hosting gratuito pero siempre me manda una sola visita y no se si esta bien los if y else y la logica de mi programaciÓn....,

porfavor ayudenme y gracias marioaraque por responder.....
  #4 (permalink)  
Antiguo 31/10/2009, 14:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: Solo muestra una visita

Cita:
Iniciado por infinitum88 Ver Mensaje
Lo que pasa es que lo estoy probando en un hosting gratuito pero siempre me manda una sola visita y no se si esta bien los if y else y la logica de mi programaciÓn....,

porfavor ayudenme y gracias marioaraque por responder.....
me pregunto... ¿y cuantos tienen acceso a tu sitio web??

porque si solo tu lo estas probando y viendo, pues eres la única visita!!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 31/10/2009, 15:13
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Solo muestra una visita

No de hecho ya varias personas ya lo visitaron pero en mi tabla me muestra varias ip`s pero cuando la muestra en mi web solo me manda una visita
  #6 (permalink)  
Antiguo 31/10/2009, 15:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: Solo muestra una visita

ahh claro... pues sucede que en tu consulta haces un SELECT empleando la $ip actual del cliente, y eso también te va a dar siempre un resultado..

tal ves la consulta debería ser algo así:
Cita:
SELECT COUNT(*) AS total FROM contador
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 31/10/2009, 15:25
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Solo muestra una visita

Mira el código ya lo deje así:
Cita:
$ip = $_SERVER['REMOTE_ADDR'];
$conBD = new ConexionBD();
$conBD->setConectar();

$cSQL = $conBD->getSQL("SELECT * FROM contador WHERE ip = '".$ip."' AND fecha = CURDATE()");
$result = mysql_num_rows($cSQL);
if( (mysql_num_rows($cSQL)) == 0)
{
$cSQL = $conBD->setSQL("INSERT INTO contador (ip,fecha) VALUES ('".$ip."', NOW())");
}
else
{
$cSQL=$conBD->getSQL("SELECT * FROM contador WHERE ip = '".$ip."' AND fecha = CURDATE()");
$result = mysql_num_rows($cSQL);
if( (mysql_num_rows($cSQL)) == 0)
{
$cSQL = $conBD->setSQL("INSERT INTO contador (ip,fecha) VALUES ('".$ip."', NOW())");
}
}
$result = $conBD->getSQL("SELECT COUNT(*) AS total FROM contador");
$count = mysql_num_rows($result);
echo $count;
Y aun asi me manda una sola visita y en mi tabla me dice que son tres.....
  #8 (permalink)  
Antiguo 31/10/2009, 16:34
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: Solo muestra una visita

Pero las 3 visitas son con la misma ip? Pq haces una busqueda de una sola ip......
Igual fijate q ese contador va a terminar haciendote la suma de 1 visita por ip cada 1 dia! Es muy poco...

Saludos.
  #9 (permalink)  
Antiguo 01/11/2009, 13:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 1 mes
Puntos: 2534
Respuesta: Solo muestra una visita

lo que sucede es que COUNT() produce un solo resultado, y tu estas leyendo el numero de resultados....

eso esta definitivamente mal... porque debes leer el "total" de registros, y mysql_num_rows() no es lo que necesitas...

Código PHP:
$result $conBD->getSQL("SELECT COUNT(*) AS total FROM contador");
$row mysql_fetch_assoc($result);
echo 
$row['total']; 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 02/11/2009, 21:48
 
Fecha de Ingreso: octubre-2009
Mensajes: 40
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Solo muestra una visita

claro muchisimas Gracias asi era la solución...............

alguien puede cerrar el mensaje ya se resolvio mi duda....
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 22:04.