Foros del Web » Programando para Internet » PHP »

Multiples registros en un campo

Estas en el tema de Multiples registros en un campo en el foro de PHP en Foros del Web. Estimados y amigos, muchas gracias como siempre por toda la ayuda que nos prestan......... Tengo una duda.....estoy construyendo un catalogo de productos hasta el momento ...
  #1 (permalink)  
Antiguo 08/02/2010, 09:45
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Multiples registros en un campo

Estimados y amigos, muchas gracias como siempre por toda la ayuda que nos prestan.........

Tengo una duda.....estoy construyendo un catalogo de productos hasta el momento va bien... pero tengo que ingresar varios manuales y especificaciones de productos, para luego mostrarlos en un div.

Consulta ¿cómo puedo insertar varios registros en un campo?..

mi tabla obiamente es

especificaciones longtext not null

en este campo deberían ir todas las especificaciones de los productos (son archivos pdf).

queria utilizar el [URL="http://webdeveloperplus.com/jquery/multiple-file-upload-with-progress-bar-using-jquery/"]ajax file upload[/URL] pero obviamente queria consultarles antes...

Muchas gracias por todo--
  #2 (permalink)  
Antiguo 08/02/2010, 09:48
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Multiples registros en un campo

lo que quieres es subir multiples archivos al servidor.. (?)
por que el titulo de tu pregunta no dice eso.. intenta explicarte un poco mejor!

aparte en tu post dices longtext not null.. con eso das a entender que algo tiene que ver con sql.. en realidad todo un lio no entendi =)
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 08/02/2010, 09:54
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Multiples registros en un campo

Si lo que deseo es subir multiples registros al servidor mediante MySQL. eso es lo que necesito... guardar rutas de direcciones en un sólo campo de MySQL
  #4 (permalink)  
Antiguo 08/02/2010, 09:56
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 3 meses
Puntos: 27
Respuesta: Multiples registros en un campo

Creo que, el tiene un form donde sube archivos.. y ahora solo sube 1 archivo a su campo especificaciones , pero quiseria (por lo que entendi) subir mas de un archivo PDF, en ese unico campo..

Creo que es asi, por que es lo que entendi.. pero como dice Hidek1 seria mejor ver ejemplos de lo que estas haciendo, y lo que quieres lograr
  #5 (permalink)  
Antiguo 08/02/2010, 09:58
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Multiples registros en un campo

bueno puedes separarlos con algun texto ?

ejemplo

Cita:
dato1[:separador:]dato2[:separador:]dato3
y luego los separas con el texto que usaste en php!

Código PHP:
Ver original
  1. $datos = explode("[:separador:]",$datos);

algo asi es lo que necesitas (?)
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 08/02/2010, 10:01
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Multiples registros en un campo

Claro... exactamente es lo que necesito .. voy a verificar el ejemplo para subirlo y les comento....
  #7 (permalink)  
Antiguo 08/02/2010, 10:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Multiples registros en un campo

Lo que estás planteando hacer puede parecer lógico a un programador, pero es una violación al modelo relacional de bases de datos (no se admiten campos multivaluados).
Si tienes múltiples instancias de archivos relacionados aun sólo objeto producto, lo que tienes son dos tablas: Una tabla conserva los datos relacionados en este caso de productos de un catálogo (lo que ya implica que al menos tienes dos tablas: Catálogo y Producto), y otra tabla que contenga la FK del producto y la PK propia, mas un campo para la dirección de un archivo. Esa sería la forma correcta de manejar el tema a nivel de Bases de Datos.
SI quieres explicaciones más claras sobre el asunto, postea tu pregunta en el Foro de MySQL.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/02/2010 a las 10:40
  #8 (permalink)  
Antiguo 08/02/2010, 10:36
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 3 meses
Puntos: 27
Respuesta: Multiples registros en un campo

yep, el caso de la Normalizacion seria
Objetos distintos en lugares distintos..
Pero eso seria como bien dice gnzsoloyo la mejor opcion..

Seria tener
Cita:
Al menos yo lo haria de esa forma..

salu2..
  #9 (permalink)  
Antiguo 08/02/2010, 10:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Multiples registros en un campo

Exacto. Ahorras espacio, performance de comunicaciones y facilitas la búsqueda.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 08/02/2010, 11:53
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Multiples registros en un campo

Ok este es el formulario.-

Código HTML:
Ver original
  1. <form action="" method="post" enctype="multipart/form-data">
  2.                     <label for="field_1">Nombre Producto</label>
  3.                     <input type="text" name="nombre_prod" id="field_1" class="short" />
  4.                     <label for="field_2">Categoría</label>
  5.                     <?php echo $combo; ?>
  6.                     <label for="field_4">Descripción del Producto</label>
  7.                     <textarea name="descripcion_prod" rows="3" cols="3" id="field_4"></textarea>
  8.                     <label for="field_4">Imagen del Producto</label>
  9.                     <input name="archivo" type="file" class="casilla" id="archivo" size="35" />
  10.                     <label for="field_4">Manual del Producto</label>
  11.                     <input name="manual" type="file" class="casilla" id="manual" size="35" />
  12.                     <input type="submit" class="submit" value="Grabar" id="enviar" name="enviar"   />
  13.                     <input name="action" type="hidden" value="add" />
  14.                     <input name="upload" id="upload" type="file" class="casilla" id="archivo" size="35" />
  15.                     </form>

lo que necesito es como ingresar varios registros en Especificaciones, de tal manera que los archivos (pdf) puedan ser mostrados mediante una lista.

Gracias..-
  #11 (permalink)  
Antiguo 08/02/2010, 11:58
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Multiples registros en un campo

El problema no es el formulario, sino la estructura de la base de datos.
Del formulario puedes tomar los datos como quieras; lo que decimos que no corresponde a un modelo de datos bien diseñado es meter todas esas direcciones de archivos en un sólo campo de un registro en una tabla de la base de datos. Lo debes almacenar normalizado para que al recuperar datos la cosa sea más eficiente y no tengas problemas en el futuro por tener un modelo de datos incorrectamente implementado.
Eso es lo que no está bien...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #12 (permalink)  
Antiguo 08/02/2010, 12:07
 
Fecha de Ingreso: enero-2007
Mensajes: 35
Antigüedad: 17 años, 3 meses
Puntos: 2
Respuesta: Multiples registros en un campo

Ok muchas gracias gnzsoloyo, pero tengo una duda. si por ejemplo un producto tiene mas de 5 o por ejemplo tienen 9 especificaciones que son archivos pdf... para eso sólo creo varios campos .. especificacion1, especificacion2,..... especificacion9, etc....

mi tablas actuales son:

TABLE `producto` (
`id_prod` int(11) NOT NULL auto_increment,
`nombre_prod` varchar(100) NOT NULL,
`descripcion_prod` longtext NOT NULL,
`img_prod` longtext NOT NULL,
`categoria` int(11) NOT NULL,
`manual` text NOT NULL,
`especificaciones` longtext NOT NULL,
PRIMARY KEY (`id_prod`),
KEY `categoria` (`categoria`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=85 ;

y


TABLE `categoria` (
`id_cat` int(11) NOT NULL auto_increment,
`cat_nombre` varchar(50) NOT NULL,
`cat_descripcion` longtext NOT NULL,
`cat_img` longtext NOT NULL,
PRIMARY KEY (`id_cat`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

las dos se relacionan mediante categorias= id_cat..

ahora tendria que crear otra tabla algo asi??

`id_especificacion` int(11) NOT NULL auto_increment,
`id_producto` varchar(50) NOT NULL,
`especificacion` longtext NOT NULL,

y en productos crear el campo

especificacion para realacionarlas entre si?

espero que me puedan ayudar y muchas gracias siempre por todo...
  #13 (permalink)  
Antiguo 08/02/2010, 14:14
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 3 meses
Puntos: 27
Respuesta: Multiples registros en un campo

Solo necesitas crear una tabla parecida al ejemplo que expuse, y la relacion que tendras es con el ID del Producto en esa nueva tabla, siendo las PK el ID_ESPECIFICACION, ID_PRODUCTO, de esta forma tendras varias especificaciones para un mismo producto, y no importara la cantidad X de especificaciones que quieras agregarle a ese unico producto.. luego tu consulta podras hacerla con un INNER JOIN a esa tabla y que conecte entre las ID que son foraneas..
  #14 (permalink)  
Antiguo 08/02/2010, 16:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Multiples registros en un campo

Es la idea que te propuso vicram10, en tu caso:
Código MySQL:
Ver original
  1. CREATE TABLE especificacion(
  2.   `id_especificacion` int(11) NOT NULL auto_increment,
  3.   `id_prod` int(11) NOT NULL,
  4.   `especificacion` VARCHAR(250) NOT NULL);
Algunos detalles:
1. Es mejor que uses tablas InnoDB y no MyISAM, ya que las InnjoDB soportan restricciones de FK y las MyISAM no.
2. Los campos que son FK deben ser del mismo tipo y rango que los de la tabla referida. Si id_prod es INT en su tabla origen, debe serlo en la tabla donde se use como FK.
3. Yo no usaría un LOGTEXT para almacenar la dirección del archivo, a menos que realmente necesitases una dirección de más de 65.535 caracteres (límite del VARCHAR). Solamente desperdicias espacio de disco.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: multiples, registros, campos
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 06:42.