Foros del Web » Programando para Internet » PHP »

insertar en bd la hora + 1

Estas en el tema de insertar en bd la hora + 1 en el foro de PHP en Foros del Web. Me gustaría que alguien me dijera cómo puedo insertar en la bd la hora que es en el momento más 1, osea si ahora son ...
  #1 (permalink)  
Antiguo 20/02/2005, 03:32
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
insertar en bd la hora + 1

Me gustaría que alguien me dijera cómo puedo insertar en la bd la hora que es en el momento más 1, osea si ahora son la 10 que me ponga las 11, tengo esto
Código PHP:
$hora=date("h"); 
y me devuelve la hora que es en ese momento, he probado ("h")+1 y opciones de ese estilo pero no consigo nada, a ver si me hechais una mano, y si nó en su defecto a ver si me podeis decir como hago aquí
Código PHP:
$ip $REMOTE_ADDR
$fecha date("j \d\e\l n \d\e Y"); 
$hora date("h:i:s"); 
$horav date("h"); 
$dia date("z");
$mes=  date("m"); 
$year date("Y"); 
//se asignan la variables 

$sql"SELECT *FROM contador WHERE fecha='$fecha' AND dia='$dia' AND horavisita='$horav' AND ip LIKE '$ip' "
$es mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error); 
//se buscan los registros que coincidan con la hora,dia,año e ip 
if(mysql_num_rows($es)>0
{
//no se cuenta la visita 

else 

$sql2 "INSERT INTO contador (id, ip, fecha, hora, horavisita, dia, mes, year) VALUES ('','$ip','$fecha','$hora','$horav','$dia', '$mes','$year')" 
$es2 mysql_query($sql2$con) or die("Error al grabar un mensaje: ".mysql_error); 

para que cuando me compruebe la ip no me registre la visita si lleva menos de una hora o dos horas depende de lo que se quiera poner, venga muchas gracias
  #2 (permalink)  
Antiguo 20/02/2005, 04:04
Avatar de sir_notos  
Fecha de Ingreso: noviembre-2001
Ubicación: Mexicali
Mensajes: 709
Antigüedad: 16 años
Puntos: 1
mysql tiene tiene sus propias funciones para manejo de fechas creo que esa seria la mejor solucion
__________________
Usuario Registrado de linux #374849
  #3 (permalink)  
Antiguo 20/02/2005, 04:10
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Bueno, lo de insertar la hora más 1 ya lo solucioné
Código PHP:
$horavisita=($horav)+
de todas formas si alguien me puede comentar cómo hacer para que compruebe la ip como hago ahora y si lleva menos de una hora o lo que necesite no me cargue la ip, gracias
  #4 (permalink)  
Antiguo 20/02/2005, 04:45
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
.. y qué pasa en la hora 12?? ... crearias una hora 13??... ...
Se puede hacer (trabajar con fechas en PHP)... pero necesitarias crear una serie de validaciones... podrias ahorrate mucho y hacerlo más funcional si te adrentas a MySQL...
Te hago un sencillo ejemplo utilizando una tabla tipo:
id | ip | fecha1 | fecha2 |
donde fecha1 y fecha2 son campor de tipo DATETIME... pués bien... con esto podria ocupar esta query
Código PHP:
$query"INSERT INTO tabla VALUES('', '$ip', NOW(), DATE_ADD(NOW(), INTERVAL 1 HOUR))";
// en fecha1 inserta la fecha y hora actual
// en fecha2 inserta la hora del campo anterior + 1 hora... 
... espero esto te ayude... honestamente no entiendo bien lo que quieres hacer...

... Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 20/02/2005 a las 04:47
  #5 (permalink)  
Antiguo 20/02/2005, 05:23
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Es un remedio casero que hago por no saber todavía el sufuciente php y mysql, lo que intento hacer es un control de visitas sin que dupliquen las ips al menos por un par de horas, eso lo tengo que mirar, consideraré una visita nueva más o menos cada 5 ó 6 horas, como no se muy bien usar sesiones y las cookies no me gustan debído a que depende del usuario si lo tiene o no activado pues hago eso, cojo la ip del cliente (aquí ya tengo el primero de muchos problemas) con
Código PHP:
$ip $REMOTE_ADDR
el problema es que así cojo la ip del proxy no del cliente, seguiré mirando en el foro a ver si se puede solucionar, cojo la fecha y las horas que necesito, luego con la visita de la página compruebo que la ip, el día y la hora no coincidan, si coinciden no registro la visita, al hacer esto puede darse el caso que alguien entre a las 9:59 y registre la visita y vuelva a esa hoja a las 10:05, la hora ya no coincide y me registra la visita y eso no lo quiero, entonces si cuando entra a la página le ponga 2 horas más o 6, la hora así no coincidirá durante ese tiempo y no me repetirá la visita, pero esto es repito una forma de hacerlo yo por no saber php y mysql, que se puede hacer de mil formas más ya lo sé pero me tengo que apañar con lo sé, de todas formas muchas gracias por tú interés
  #6 (permalink)  
Antiguo 20/02/2005, 08:45
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Como habreis podido observar tengo un lío que no me aclaro ni yo mismo, todo lo que tengo hecho no vale para nada, estoy como un burro, nada que lo de sumar 2 o 4 no vale así nunca coincidirá la hora y siempre me la registrará, nada que sigo necesitando ayuda, recojo la ip del visitante, la fecha y la hora, miro a ver si esta registrada ya esa ip y si lo está miro la hora en la que se registró la última vez y si no pasaron 4 horas no la registro otra vez y si pasaron las cuatro horas desde la ultima visita entonces si la registro a ver como enfoco esto, gracias
  #7 (permalink)  
Antiguo 20/02/2005, 09:00
Avatar de Danger_  
Fecha de Ingreso: diciembre-2004
Ubicación: Queretaro, México
Mensajes: 395
Antigüedad: 13 años
Puntos: 0
creoq ue tienes broncas con la zona horaria....
  #8 (permalink)  
Antiguo 20/02/2005, 09:02
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
No me entiendes, lo que necesito es que no me registre la visita sinó pasaron 5 horas desde la última
  #9 (permalink)  
Antiguo 21/02/2005, 09:05
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... (sus).. prueba esto:
La tabla "visitas" que ocupé:
Código:
CREATE TABLE `visitas` (
`id` TINYINT NOT NULL AUTO_INCREMENT ,
`ip` VARCHAR( 15 ) NOT NULL ,
`hora` DATETIME NOT NULL ,
PRIMARY KEY ( `id` )
);
El código:
Código PHP:
<?php
$lapso
1// minutos permitidos para tratarlo como 'usuario activo'
$ip=$REMOTE_ADDR;

include(
"conex.php"); // conexión, seleccion de la base de datos... 
$buscamysql_query("SELECT * FROM visitas WHERE ip='$ip' AND hora>DATE_SUB(NOW(), INTERVAL $lapso MINUTE) LIMIT 0,1"$conexion) or die ("<b>ERROR:</b><br>".mysql_error());
$regis=mysql_fetch_assoc($busca);

if(
mysql_num_rows($busca)>0){ 
    
mysql_query("UPDATE visitas SET hora=NOW() WHERE id='".$regis['id']."' LIMIT 1"$conexion) or die ("<b>ERROR:</b><br>".mysql_error());
} else {
    
mysql_query("INSERT INTO visitas VALUES ('', '$ip', NOW())"$conexion) or die ("<b>ERROR:</b><br>".mysql_error());
}

$resultadomysql_query("SELECT *, COUNT(*) AS total, MAX(hora) AS hora FROM visitas GROUP BY ip ORDER BY total DESC"$conexion) or die ("<b>ERROR:</b><br>".mysql_error());

while(
$row=mysql_fetch_array($resultado)) {
echo 
$row['ip']." - ".$row['total']." - ".$row['hora'];
}
?>
... algo simple... si te adentras más en MySQL verás que no puede quedar nada más ahí... pero bueno, espero sea lo que necesites porque al final ya ni entendí bien... .

Lo subí a la red para que puedas verlo funcionar:
http://jam1138.webcindario.com/visitas.php

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 21/02/2005 a las 09:07
  #10 (permalink)  
Antiguo 21/02/2005, 09:49
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Pues menos mal que casi no entendiste compañero, eso es lo que buscaba, oye si en vez de un minuto le pongo 5 horas funcionaría igual?, en lo referente a la IP, sabes algo de cómo cojer al ip del pc y no del proxy?, a mí por ejemplo me coje la ip del proxy, no la mía, de todos modos, oye, muchísimas gracias de verdad.
  #11 (permalink)  
Antiguo 21/02/2005, 10:09
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
Le cambié $lapso= 1 por $lapso=5 y MINUTE por HOUR, voy a probarlo a ver que pasa, gracias de nuevo
  #12 (permalink)  
Antiguo 22/02/2005, 00:17
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
Cita:
Iniciado por mon
Le cambié $lapso= 1 por $lapso=5 y MINUTE por HOUR, voy a probarlo a ver que pasa, gracias de nuevo
Exacto.. los parámetros que puedes ocupar son MINUTE, HOUR, DAY, MONTH y YEAR... al menos los que sé. Le puse MINUTE pensando en que quizá podrias ponerle '300' como parámetro (5 hrs)... no probé eso.

Que bueno que te sirva, espero no quede ahí... yo agregaria un campo 'vistas' por usuario y no agregar un registro por visita. Puedes hacer más cosas, eso lo hice na más por experimentar con MySQL, porque verás que es puro MySQL... no sabía lo que hacia... Te recomiendo el sitio en el que estoy aprendiendo:
www.mysql-hispano.org
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #13 (permalink)  
Antiguo 22/02/2005, 04:18
mon
 
Fecha de Ingreso: febrero-2003
Mensajes: 506
Antigüedad: 14 años, 10 meses
Puntos: 0
No, no va a quedar ahí, lo estoy preparando para sacar visitas por día de página, por mes, por año, página más vista, menos vista, hora más usada para la visita, que vió cada visita, en fin todo eso, lo que si me gustaría pero eso ya será más adelante es poder hacer gráficas con los resultados de las consultas, pero eso ya tiene que ser más complicado, en cuanto a mysql-hispano llevo usandolo hace poco y me está sirviendo un montón, entre eso y php.net/manual.es estoy aprendiendo un poco, que esto con el uso y con las dudas que van saliendo sobre la marcha, y por supuesto con vuestra ayuda, se va sacando adelante, bueno lo dicho muchísimas gracias por tu ayuda
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 21:51.