Asignar imagenes a un solo usuario

Kurai

Lanero Reconocido
19 Sep 2006
2,907
Laneros buenas noches,

Necesito de su ayuda con ideas para resolver un problema:

Tengo un directorio con 100 imágenes.
Tengo 10 usuarios a los que se les debe mostrar a cada uno una imagen diferente.
Debo asegurarme que no muestra la misma imagen a diferentes usuarios.

Desarrollé la siguiente lógica en php, pero cuando están los 10 usuarios en simultáneo le muestra una misma imagen a dos usuarios diferentes.

1. Leo el nombre de la imagen e inserto un registro en base de datos y le pongo un estado cero 0 (significa que esta imagen no se ha mostrado)
2. Hago un Select de los nombres de las imágenes que tengan estado cero y traigo el primer registro usando limit
3. A ese registro que traje, le cambio el estado a 1 para decir que esta imagen ya se mostró

El problema es que en el paso 2, el mismo registro que obtuve se puede estar mostrando 2 veces, al primero que le mostró le pongo estado 1 y se le muestra la imagen al usuario, pero al segundo que tiene el el mismo registro vuelve y le pone estado 1 y le muestra a otro usuario.
 
Hola como estás,

el problema puede que esté en el paso 1, pues si cada usuario ejecuta los pasos del 1 al 3 el segundo usuario fuese cual fuese estaría quitando el estado que cualquier otro usuario haya cambiando, ejemplo:

Usuario 1 -> (Lee directorio de imagenes y pone en 0 todos sus estados) --- se le asigna la imagen_1 --- (cambia el estado a '1' por que ya la vio).
Usuario 2 -> (Lee directorio de imagenes y pone en 0 todos sus estados) --- se le asigna la imagen_1 --- (cambia el estado a '1' por que ya la vio).

el problema podría ser por que se asigna el estado '0' en un principio, lo ideal sería:

1. Por defecto todas las imagenes tuvieran estado 0.
2. El usuario al usar la imagen modifica su estado a 1.
3. Una vez ese usuario con la imagen ya asignada deje de usarla cambie su estado de nuevo a 0.

Es como lo imagino, sin embargo, se sujeta al entorno en que se mueve el usuario.


Saludos!
 
  • Me gusta
Reacciones: Kurai

Los últimos temas