Foros del Web » Programando para Internet » PHP »

Varias categorías para un usuario

Estas en el tema de Varias categorías para un usuario en el foro de PHP en Foros del Web. Buenas tardes, otra vez con una duda/problema. Estoy practicando con un sistema de usuarios, y quiero que el usuario cuando se registre pueda agregar varias ...
  #1 (permalink)  
Antiguo 23/08/2012, 12:48
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 1
Varias categorías para un usuario

Buenas tardes, otra vez con una duda/problema.

Estoy practicando con un sistema de usuarios, y quiero que el usuario cuando se registre pueda agregar varias categorías, pero las categorías van en otra tabla a parte, se entiende?

Osea cuando el usuario se registra pueda agregar más de 5 categorías a las que pertenece y cuando yo muestre el perfil del usuario me muestre todas las categorías a las que pertenece con un get id.

Gracias de antemano.
  #2 (permalink)  
Antiguo 23/08/2012, 12:50
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Varias categorías para un usuario

¿Y cuál es la duda?
  #3 (permalink)  
Antiguo 23/08/2012, 17:25
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Varias categorías para un usuario

Perdón, me expresé mal. A lo que me refiero es que si se pueden guardas las id's de las categorías en una sola columna llamada "categoría", yo ahora para guardas las categorías tengo diferentes columnas como "categoría", "categoría2", etc.
  #4 (permalink)  
Antiguo 24/08/2012, 04:02
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 18 años
Puntos: 58
Respuesta: Varias categorías para un usuario

Yo creo que sería mas facil crear una tabla relacional de id_usuarios e id_categorias. Si el usuario 125 perteneciera a tres categorias (43,45,47), tendrias tres filas en esa tabla
125-43
125-45
125-47
También puedes guardarlas en sólo campo llamado categorias en la tabla de usuarios, separado por comas o similar pero al tiempo puedes tener problemas.
  #5 (permalink)  
Antiguo 24/08/2012, 14:07
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Varias categorías para un usuario

Claro al separarlo con comas a la hora de realizar una consulta no me lo muestra.
Otra opción como sería?
  #6 (permalink)  
Antiguo 24/08/2012, 14:57
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Varias categorías para un usuario

El problema viene cuando la cantidad de categorías que puede tener un usuario es indefinida.

Esto se resuelve teniendo una tercer tabla que relacione, por un lado tienes la tabla usuarios, por otro lado la tabla categorías, y luego una tabla que enlace el id del usuario con el id de la categoría.
  #7 (permalink)  
Antiguo 24/08/2012, 16:17
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Varias categorías para un usuario

ocp001a tendrás algún código de ejemplo como para tener una referencia?
  #8 (permalink)  
Antiguo 25/08/2012, 08:56
Avatar de antoniopol  
Fecha de Ingreso: agosto-2012
Ubicación: Valladolid
Mensajes: 114
Antigüedad: 11 años, 8 meses
Puntos: 21
Respuesta: Varias categorías para un usuario

La idea es la siguiente roodriv
tabla usuarios: usuario, id_usuario
tabla categorias: id_categoria, nombre_categoria
tabla usuarios_categorias: id_usuario, id_categoria (los 2 campos primary key)

Y simplemente en el perfil del usuario llamado "prueba" para sacar las diferentes categorias sería la siguiente sentencia:
Código PHP:
Ver original
  1. $query="select nombre_categoria from categorias
  2. where id_categoria IN (select id_categoria from usuarios_categorias
  3.              where id_usuario = (select id_usuario from usuarios
  4.                                             where usuario='prueba'))";

Así mostrarías los nombres de las categorías del usuario "prueba" utilizando la tabla intermedia. Espero que te funcione.
  #9 (permalink)  
Antiguo 26/08/2012, 13:55
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Varias categorías para un usuario

Muchas gracias!

Etiquetas: tabla, 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 12:24.