Foros del Web » Programando para Internet » PHP »

update mysql dia, ip y contador

Estas en el tema de update mysql dia, ip y contador en el foro de PHP en Foros del Web. tengo un sistema de sesiones con una bd mysql: Id int(11) No Socio varchar(10) Sí NULL Contraseña varchar(50) Sí NULL Nom varchar(50) Sí NULL Apellidos ...
  #1 (permalink)  
Antiguo 16/05/2006, 16:55
 
Fecha de Ingreso: marzo-2003
Mensajes: 225
Antigüedad: 21 años, 1 mes
Puntos: 0
update mysql dia, ip y contador

tengo un sistema de sesiones con una bd mysql:

Id int(11) No
Socio varchar(10) Sí NULL
Contraseña varchar(50) Sí NULL
Nom varchar(50) Sí NULL
Apellidos varchar(50) Sí NULL
email varchar(50) Sí NULL
visita date Sí NULL
ip varchar(30) Sí NULL
contador int(6) Sí NULL

y quiero contar las visitas de los usuarios: actualizando el día, la ip y un contador que se incremente con cada visita,
he añadido un par de lineas (>>>) pero está claro que algo hago mal:

Código PHP:
<?php
$myUsername_rsLogin 
"0";
>>>
$IP $REMOTE_ADDR
>>>
$hoy date("j \d\e\l n \d\e Y");
if (isset(
$HTTP_POST_VARS['username'])) {
  
$myUsername_rsLogin = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['username'] : addslashes($HTTP_POST_VARS['username']);
}
$myPassword_rsLogin "0";
if (isset(
$HTTP_POST_VARS['password'])) {
  
$myPassword_rsLogin = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['password'] : addslashes($HTTP_POST_VARS['password']);
}
mysql_select_db($database_zona$zona);
$query_rsLogin sprintf("SELECT Socio, Contraseña FROM socios WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')"$myUsername_rsLogin,$myPassword_rsLogin);
$rsLogin mysql_query($query_rsLogin$zona) or die(mysql_error());
$row_rsLogin mysql_fetch_assoc($rsLogin);
$totalRows_rsLogin mysql_num_rows($rsLogin);

if(
$HTTP_POST_VARS['action']=="login"){
    if(
$totalRows_rsLogin==0){
        
$errorMessage "error de conexión";
        
mysql_free_result($rsLogin);
    } else {
        >>>
$query_rsLogin sprintf("UPDATE socios SET visita = '$hoy', ip = '$IP', contador = contador+1 WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')"$myUsername_rsLogin,$myPassword_rsLogin);
        
mysql_free_result($rsLogin);
        
session_register("usu");
        
$HTTP_SESSION_VARS['usu'] = $HTTP_POST_VARS['username'];
        
header("Location: ../index.php");
    }
}
?>
entrar entro, pero el registro no se actualiza,
¿podéis decirme donde está el error?
gracias
  #2 (permalink)  
Antiguo 17/05/2006, 07:36
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
No se ve que ejecutes el codigo sql del update, es decir, no se ve una llamada a mysql_query().
  #3 (permalink)  
Antiguo 17/05/2006, 11:06
 
Fecha de Ingreso: marzo-2003
Mensajes: 225
Antigüedad: 21 años, 1 mes
Puntos: 0
gracias, solo mefalta dar formato a la fecha

tenías razón, esto funciona,
ahora solo me falta ar formato a la fecha,
tengo un campo date() y capturo la fecha,
con date("d-m-Y") el 22-05-2006 me aparece 2017-05-20!!??,
con date("Y-m-d"") 2006-05-17,

Última edición por jossxx; 17/05/2006 a las 11:24
  #4 (permalink)  
Antiguo 17/05/2006, 11:28
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por jossxx
tenías razón, esto funciona,
ahora solo me falta ar formato a la fecha,
tengo un campo date() y capturo la fecha,
con date("d-m-Y") el 22-05-2006 me aparece 2017-05-20!!??,
con date("Y-m-d"") 2006-05-17,
El tipo de campo DATE de Mysql es con el formato YYYY-MM-DD .. así que tendras que dar formato a tu "date()" función con ese formato para cuadrarlos ..

De hecho no es necesario que uses una función de PHP para eso, .. Mysql ya tiene funciones de fechas para obtener la fecha actual y encima en el formato própio de Mysql (para que no te calientes más).

Me refiero a usar NOW() o CURDATE() (en tu caso esta última si usas un tipo de campo DATE, no lleva la hora sólo fecha).

Código PHP:
$query_rsLogin sprintf("UPDATE socios SET visita = CURDATE(), ip = '$IP', contador = contador+1 WHERE Socio = '%s' AND Contraseña = PASSWORD('%s')"$myUsername_rsLogin,$myPassword_rsLogin); 
Sería así .. y me sobraría "$hoy"

Si usas un campo tipo DATETIME (creo que es esto lo que deberías usar) .. usa NOW() que te dá la fecha en Mysql con hora y fecha.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 17/05/2006, 17:04
 
Fecha de Ingreso: marzo-2003
Mensajes: 225
Antigüedad: 21 años, 1 mes
Puntos: 0
ok

Cluster, como siempre tu ayuda no tiene precio,
gracias!!
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 10:02.