Jump to content


Photo

Bloquear registro de mysql si esta siendo usado


  • Please log in to reply
4 replies to this topic

#1 tumbero_x

tumbero_x

    Advanced Member

  • Miembros
  • PipPipPip
  • 65 posts

Posted 09 November 2011 - 06:41 AM

Hola Amigos!!!
estoy haciendo un sistemita de clientes y articulos
pero se me presemto un problema , como podria hacer para bloquear un cliente si por ejemplo un usuario lo esta editando y otro usuario en ese mismo instante tambien lo quiere editar u hacer otra operacion con el mismo cliente?
estube viendo los semaforos con php pero no funcionan en windows
Saludos y muchas gracias!!!
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 09 November 2011 - 06:50 AM

Bueno se me ocurre crear un campo llamado Lock o Editing, como quieras llamarlo, del tipo smallInt con 0 como valor por defecto como abierto (False), cuando un usuario llama un registro para editar haces la consulta a ese campo primero, luego haces la comparacion si esta 0 pues esta abierta y mandas a actualizar ese campo a 1 (true) de lo contrario esta bloqueado, asi cuando otro quiera intentar editar mientras este cerrado se realiza la comparacion y mandas el mensaje, y cuando el usuario termina de editar vuelves a poner a 0 el campo para que otro pueda editarla. Espero ser entendible :D :D

Saludos.

  • 0

#3 tumbero_x

tumbero_x

    Advanced Member

  • Miembros
  • PipPipPip
  • 65 posts

Posted 09 November 2011 - 06:56 AM

Perfecto!!! lo voy a hacer basado en lo que me indicas
solamente me surge una duda , si el usuario que esta editando en ese momento no termina el proceso de edicion (cierra el navegador desde la x) ese registro  va a seguir estando "bloqueado"
basado en tu experiencia, cual seria la mejor forma de evitar esto
Saludos Y muchas gracias!!!

  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 09 November 2011 - 07:22 AM

Pues es un poco trabajoso el asunto, hay varias formas de realizar eso:

1) Gestion de Sesiones: crear una sesion relacionada con la edicion del registro especifico por un tiempo determinado, por ejemplo 15 minutos, y luego que se acabe el tiempo realizar la consulta.

2) Cookies: Igual que la anterior.

3) Detectar cuando el Navegador fue cerrado: Esto se puede hacer haciendolo con Javascript y/o AJAX, el primero no se puede realizar consultas a MySQL, el segundo es un poco mas trabajoso.

4) Que el Administrador sea quien lo desbloquee :D :D

Saludos.

  • 0

#5 tumbero_x

tumbero_x

    Advanced Member

  • Miembros
  • PipPipPip
  • 65 posts

Posted 09 November 2011 - 07:25 AM

perfecto , voy a trabajar sobre todo eso que me indicaste
Saludos Y muchas gracias!!!
  • 0




IP.Board spam blocked by CleanTalk.