Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 10-oct-2006, 05:35   #1 (permalink)
antoniocainzos no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Campo con valores separados por comas

Hola a todos, a ver si alguien puede ayudarme.

Tengo una base de datos access con dos tablas (Ficha y Opciones).
En uno de los campos de la tabla Ficha (Ficha.Opciones) recoge los valores de la tabla Opciones guardando los ID's separado por comas, es decir, 1,3,4,7...
La tabla opciones tiene los campos: IdOpciones, descripcion.
Lo que necesito es que al ver la página detalle de un registro de Ficha me muestre como campo opciones: descripcion1, descripcion3, descripcion4, descripcion7.

¿Alguna pista de lo que debo hacer?
No se si está muy bien explicado. Si no se entiende intento hacerlo mejor.

Gracias anticipadas.

Un saludo,
Antonio Cainzos
antoniocainzos está desconectado   Responder Citando
Antiguo 11-oct-2006, 05:02   #2 (permalink)
MACGREGOR está en el buen camino
 
Avatar de MACGREGOR
 
Fecha de Ingreso: enero-2005
Mensajes: 89
Debes eliminar el campo Ficha.Opciones de la tabla ficha.

Crea una tabla que se llame por ejemplo Rel_ficha_op en la que guardes la relación que existe entre la ficha y las opciones guarda los identificadores de las dos tablas en esta nueva.

ejemplo:
Tabla Ficha
id_F:1 (resto campos)
id_F:2 (resto campos)
id_F:3 (resto campos)
id_F:4 (resto campos)
id_F:5 (resto campos)
id_F:6 (resto campos)
..............................

Tabla Rel_ficha_op
id_F:1 id_op:1
id_F:1 id_op:3
id_F:1 id_op:4
id_F:1 id_op:7
id_F:2 id_op:2
id_F:2 id_op:5
..............................

Tabla Opciones:
id_op:1 desc:"descripción 1"
id_op:2 desc:"descripción 2"
id_op:3 desc:"descripción 3"
id_op:4 desc:"descripción 4"
id_op:5 desc:"descripción 5"
id_op:6 desc:"descripción 6"
..............................

De esta manera podrás cruzar con una consulta la tabla ficha y la tabla opciones y hacer lo que quieres.
Select FI.id_F, FI.(resto de campos), OP.id_op, OP.desc
from ficha as FI, opciones as OP, Rel_ficha_op as REL
where FI.id_F=REL.id_F and REL.id_op=OP.id_op
and FI.id_F <= 2 (suponiendo que queremos las 2 primeras fichas)

El resultado (siguiendo como ejemplo los valores anteriores)

id_F:1 (resto campos) id_op:1 desc:"descripción 1"
id_F:1 (resto campos) id_op:3 desc:"descripción 3"
id_F:1 (resto campos) id_op:4 desc:"descripción 4"
id_F:1 (resto campos) id_op:7 desc:"descripción 7"
id_F:2 (resto campos) id_op:2 desc:"descripción 2"
id_F:2 (resto campos) id_op:5 desc:"descripción 5"


Ahora ya tienes lo que quieres, si solo quieres una línea para cada ficha puedes coger esta consulta sql meterla en la clausula from como si fuera una tabla "from (toda la consulta anterior) as RES1..." y realizar una consulta concatenando los campos descripción.
MACGREGOR está desconectado   Responder Citando
Antiguo 11-oct-2006, 05:53   #3 (permalink)
antoniocainzos no se puede cailificar en este momento
 
Fecha de Ingreso: julio-2006
Mensajes: 10
Muchas gracias, sobre todo por la explicación tan detallada. Voy a probar de inmediato.
Gracias de nuevo

Un saludo
Antonio Cainzos
antoniocainzos está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 14:02.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93