Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Refrescar web si ID está registrado en base de dato

Estas en el tema de Refrescar web si ID está registrado en base de dato en el foro de PHP en Foros del Web. Buenos dias, Tengo un formulario de registro que me genera un ID UNICO ALEATORIO con numero y letras, por ejemplo: 8b9e7ab295e87570551d. Hago esto porque no ...
  #1 (permalink)  
Antiguo 17/06/2013, 08:04
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 10 meses
Puntos: 0
Refrescar web si ID está registrado en base de dato

Buenos dias,

Tengo un formulario de registro que me genera un ID UNICO ALEATORIO con numero y letras, por ejemplo: 8b9e7ab295e87570551d. Hago esto porque no tengo permiso en Oracle de crear una variable ID autoincrement y decidí crear un script que me genere un ID ALEATORIO.

Tengo un problema, al llenar los datos y enviar, el ID ALEATORIO puede coincidir con otro que ya este registrado, por lo que necesito que me refresque la pagina para que genere otro ID.

Es muy poco probable que los IDs coincidan ya que son 20 digitos alfanumericos pero hay posibilidades. Por eso necesito que me refresque el formulario si el ID anterior existe.

Alguna idea?
  #2 (permalink)  
Antiguo 17/06/2013, 08:44
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Refrescar web si ID está registrado en base de dato

Sería algo como:
0. Consultar si id existe en DB
1. Si existe: header('Location: loquesea.php')

También puedes usar sessiones o directamente enviar un id a la db HASTA que el id sea único, entonces los insertas y punto. El usuario no se entera de nada.
Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 17/06/2013, 08:50
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 16 años, 1 mes
Puntos: 36
Respuesta: Refrescar web si ID está registrado en base de dato

Puedes utilizar AJAX, sino quieres que tu pagina PHPH se refresque y dentro del proceso, antes de insertar el registro completo, chequeas si ya existe un ID ALEATORIO que coincida con el alguno en la base de datos, que puede que no, pero tambien puede que si, existea una igual, de existir alguno, genera uno nuevamente.

O puedes utilizar la siguiente formula, que he visto muchos por ahi que lo hacen de este tipo:

20130617104425.....

esto quiere decir:

ano mes dia hora min segundos .......... y lo puedes seguir con otras cosas mas que quieras...
  #4 (permalink)  
Antiguo 17/06/2013, 09:18
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Refrescar web si ID está registrado en base de dato

Sería bueno también usar la formula "ano mes dia hora min segundos" para usrlo como ID.

Como podría imprimir eso?
  #5 (permalink)  
Antiguo 17/06/2013, 09:39
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 16 años, 1 mes
Puntos: 36
Respuesta: Refrescar web si ID está registrado en base de dato

Con esto imprimir toda la cadena de la fecha a la cual te hice referencia:

Código PHP:
Ver original
  1. echo date("dmYHis");

El resultado seria: 17062013113259

Saludos,
  #6 (permalink)  
Antiguo 17/06/2013, 09:40
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 16 años, 1 mes
Puntos: 36
Respuesta: Refrescar web si ID está registrado en base de dato

O tambien lo puedes usar asi, para que te quede en la base de datos organizado, iniciando por el ano.

Código PHP:
Ver original
  1. echo date("YmdHis");
  #7 (permalink)  
Antiguo 17/06/2013, 09:50
 
Fecha de Ingreso: enero-2012
Mensajes: 109
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Refrescar web si ID está registrado en base de dato

Coloque el ID Aleatorio con

<?php echo date("YmdHis"); ?>

Etiquetas: dato, formulario, refrescar, registrado, registro
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:20.