Foros del Web » Programando para Internet » PHP »

Ayuda para comparar datos de consulta

Estas en el tema de Ayuda para comparar datos de consulta en el foro de PHP en Foros del Web. hola a todos, hice mi sistema de logueo y quiero que un user solo inicie sesion 2 veces al dia: 1- para que el usuario ...
  #1 (permalink)  
Antiguo 17/10/2009, 08:44
 
Fecha de Ingreso: septiembre-2009
Mensajes: 54
Antigüedad: 14 años, 8 meses
Puntos: 0
Ayuda para comparar datos de consulta

hola a todos, hice mi sistema de logueo y quiero que un user solo inicie sesion 2 veces al dia:

1- para que el usuario sepa a que hora llego, mostrandole la hora y si tuviera tardanza (esta parte ya lo hice)
2- para que el usuario pueda ver a que hora se retira, esta hora tambien que se quede grabado en la BD.

la situacion es esta, digamos que un usuario llega a trabajar y para hacerlo antes tiene que loguearse y asi enviar los datos de su hora de llegada, luego este usuario cierra sesion y se va a trabajar.. al paso de unas horas, se vuelve a loguear y le muestra la hora que esta saliendo, pero ya no le permite volverse a loguear (para prevenir errores en la bd).
como dije, la primera parte ya lo hice, pero tengo poca idea de como hacer para que el usuario solo se loguee solo 2 veces por dia?,

estuve haciendo esto:
en un campo fecha de la bd puse default CURRENT_TIMESTAMP y cada vez que un user se logueo queda grabado esta hora que devuelve asi:
2009-10-16 23:44:50
hice esto para que me devuelva la fecha en el mismo formato que el de la bd para luego compararla, si ya existe que una fecha actual que verifique que solo haya 1 fecha actual(hora de entrada), si existen 2 fechas actuales que no permita loguearse


Código PHP:
$f_c_bd=date("d-m-Y"); 
$f_p=explode("-",$f_c_bd)
$FECH4=$f_p[2]."-".$f_p[1]."-".$f_p[0]; 

y ahora se me ocurrio partir la fecha de default de la bd y compararla con la de la funcion (que devolvera la fecha y hora actual que inicio sesion)
quiero verificar si existe una fecha actual, entonces que solo permita iniciar sesion una vez mas, sino mostrara un mensaje diciendo que ya se logueo las 2 veces permitidas

Código PHP:
$Fecha_BD=mysql_query("SELECT fecha FROM horasingreso WHERE docenteid='".$id."' LIMIT 0,2 ORDER BY id DESC",$cn);//extraigo las 2 ultimas fechas de la bd
        
$cuenta=mysql_num_rows($F_DB);
         
        if(
$cuenta>0){ 
           
$fechA=mysql_fetch_assoc($F_DB);
           
$PART=explode(" ",$fechA['fecha']); //parto la fecha de la BD para compararla con la fecha php
           
$PART[0]; //me devolvera algo como: 2009-10-16
           
if($PART[0]==$FECH4){//aqui quiero saber si la fecha de la BD coincide con la fecha actual
              
if()//aqui quiero verificar si las 2 fechas de la BD son del mismo dia o no, pero no se como hacerlo, como comparar 2 campos de la bd????
           

            
}  
        
//$FECH4 devuelve la fecha como el formato de la bd, ejm 2009-10-16 
PD: lo de saber la hora de llegada y salida del usuario ya me las ingenie como hacerlo, pero quiero saber como hacer para que inicie sesion solo 2 veces al dia

PD2: esta claro que no se si sea la mejor forma de hacerlo, pero si alguien tiene una mejor idea... QUE ME LO DIGAAA

necesito de su ayuda y estare eternamente agradecido
  #2 (permalink)  
Antiguo 17/10/2009, 23:07
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Ayuda para comparar datos de consulta

Hola
y si agregas un campo llamado por ej numerologueos, y que este campo tome valor cada vez que la persona se loguea durante un dia (la primera vez con insert y la segunda con update si haces todo en un solo registro, o en 2 inserts si haces por aparte cada logueo) , y si ese campo es mayor a 2 ( o la sumatoria de esos campos es 2 en caso que sean registros individuales) pues ya hizo sus 2 logueos diarios
espero tal vez esta idea te ayude
saludos
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 01:42.