Foros del Web » Programando para Internet » PHP » Zend »

ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Estas en el tema de ZEND FRAMEWORK comparar y validar dos campos unicos de la BD en el foro de Zend en Foros del Web. el problema que tengo es que tengo dos tablas que son usuarios y roles, donde hay una tabla intermedia que es usuarios_roles en esta se ...
  #1 (permalink)  
Antiguo 21/10/2011, 10:02
 
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Exclamación ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

el problema que tengo es que tengo dos tablas que son usuarios y roles, donde hay una tabla intermedia que es usuarios_roles en esta se almacenan los ID
tonces cree el form y sus funciones de agregar, modificar etc... pero cuando ya tengo al macenado el usuario 1 con el cargo y quiero insertar el mismo me dice que estos campos son unicos y no se puede duplicar

An error occurred
Application error
Exception information:
Message: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1-1' for key 'PRIMARY'

Stack trace:


a ver si podrian dar una ayudita gracias
  #2 (permalink)  
Antiguo 21/10/2011, 10:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Utiliza el Validator correspondiente http://framework.zend.com/manual/en/...luding-records

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 21/10/2011, 10:10
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Es decir, estás transformando una relación entre tablas en una tabla débil, la comparación debería ser entre usuario-rol, pero en tu caso deberia ser usuario-usuario_rol-rol...
me explico?
  #4 (permalink)  
Antiguo 21/10/2011, 10:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Pues es por lo mismo, si ese es tu indice no puedes insertar el mismo indice dos veces.
  #5 (permalink)  
Antiguo 21/10/2011, 12:18
 
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

masterpuppet...implemente todas las funciones que me podian servir pero ninguna me trae el resultado que necesito



Sirrohan...
puedes explicarte porfavor
  #6 (permalink)  
Antiguo 21/10/2011, 12:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Cita:
Iniciado por saenz992 Ver Mensaje
[...] puedes explicarte porfavor
Y también te respondió GatorV:

Cita:
Iniciado por GatorV Ver Mensaje
Pues es por lo mismo, si ese es tu indice no puedes insertar el mismo indice dos veces.
Tan básico como estudiar un poco y tener sentido común.

Cosa que se escapa de PHP, pues es un mal diseño de la base de datos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 21/10/2011, 13:25
 
Fecha de Ingreso: octubre-2011
Mensajes: 12
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

No Creo que sea mal diseño de la base datos... ya que la forma en que lo modelamos fue pensando...un usuario puede tener varios roles y un rol lo pueden tener varios usuarios...

entonces .. tengo el usuario 1 con el rol 1 y cuando quiero guardar los mismos datos ya no me marca error por que valide cada uno de los campos de la base de datos...

pero !!! cuando quiero guardar el usuario 1 con el rol 2 me sale error diciendome que ya se encuentra el usuario 1 en la tabla

entonces que he tratado de hacer... una comparacion diciendo... que si el usuario y el rol que voy a entrar son iguales a alguno de los que hay almacenados me diga que no puedo !

si me hago entender ...es que es algo enredado!
  #8 (permalink)  
Antiguo 21/10/2011, 13:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Pues así como lo planteas es bien fácil, solo debes hacer una consulta SELECT con los campos que desees insertar. Si eso da resultados entonces ya existe un registro con tales datos, no mas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 21/10/2011, 13:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Eso es un mal diseño, necesitas tener una tabla usuarios_roles donde tengas dos campos, un id_usuario e id_rol, ambos campos deben de ser la llave primaria compuesta, eso te va a permitir tener varios roles por usuarios y viceversa.

Saludos.
  #10 (permalink)  
Antiguo 21/10/2011, 13:57
 
Fecha de Ingreso: julio-2010
Mensajes: 275
Antigüedad: 13 años, 9 meses
Puntos: 21
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

Creo que cuando te refieres a roles es al nivel de acceso de los usuarios a las funciones sistema que se quiere implementar...

por ejemplo, los roles que usa esta página (según tengo entendido) son "administrador","moderador" y "usuario"... y (según tengo entendido) hay un módulo para cada rol, en el caso de este foro, un rol de usuario no puede ser igual al rol de un administrador, así que no entiendo esa parte que comentas de que un usuario puede tener varios roles...

Es algo confuso lo que estás proponiendo, deberían revisar desde la conceptualización de la base de datos, lo que te propongo es crear los módulos necesarios para cada rol y, además, creo que tienes 3 tablas en una, creo que deberías hacer una tabla que quede algo así:

login pass rol email
user 1234 1 [email protected]
user2 4321 2 [email protected]
user3 2011 3 [email protected]

Slds.
  #11 (permalink)  
Antiguo 21/10/2011, 14:07
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND FRAMEWORK comparar y validar dos campos unicos de la BD

@saenz992 postea el código con el validator y supongo que quieres controlar que no se intente guardar de nuevo el mismo par user - rol, verdad ?

@GatorV, entiendo que lo tiene de esa forma.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: bd, campos, framework, sql, tabla, unicos, usuarios
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 19:34.