Foros del Web » Programando para Internet » PHP »

Agregar Varios Item a una Base de datos

Estas en el tema de Agregar Varios Item a una Base de datos en el foro de PHP en Foros del Web. Hola a todos tengo este formulario donde recibo unos parametros de una persona El Problema surje ahora por que si son varios Items a agregar ...
  #1 (permalink)  
Antiguo 19/02/2008, 16:25
 
Fecha de Ingreso: enero-2008
Mensajes: 60
Antigüedad: 16 años, 10 meses
Puntos: 0
Agregar Varios Item a una Base de datos

Hola a todos tengo este formulario donde recibo unos parametros de una persona


El Problema surje ahora por que si son varios Items a agregar no tengo idea de como hacerlo pues quisiera colocar un boton al lado "agregar nuevo Item"

...ademas tampoco se cual seria el mejor diseño para la base de datos sabiendo que en el momento la tengo asi.


Si me pueden ayudar se los agradeceria demasiado

Gracias
  #2 (permalink)  
Antiguo 19/02/2008, 16:45
 
Fecha de Ingreso: febrero-2008
Mensajes: 31
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Agregar Varios Item a una Base de datos

Con una consulta insert.

insert into tabla (dato1,dato2,dato3)Values('valor1'.'valor2'.'valor 3')
  #3 (permalink)  
Antiguo 19/02/2008, 16:59
 
Fecha de Ingreso: enero-2008
Mensajes: 60
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Agregar Varios Item a una Base de datos

Cita:
Iniciado por -Nico- Ver Mensaje
Con una consulta insert.

insert into tabla (dato1,dato2,dato3)Values('valor1'.'valor2'.'valor 3')
HoGF

Gracias por tu respuesta, yo se lo que es Insert y todo eso ya tengo mucha experiencia con php y sql si no que lo que necesito es algo mas avanzado que eso por que tengo que almacenar varias compras que puede hacer una persona en un solo registro.
  #4 (permalink)  
Antiguo 19/02/2008, 17:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Agregar Varios Item a una Base de datos

Necesitas en tu tabla tener una relación de 1 a n, asi por cada usuario tendrás n items que almacenes en tu base de datos.

Saludos.
  #5 (permalink)  
Antiguo 19/02/2008, 17:24
Avatar de anjovi4  
Fecha de Ingreso: diciembre-2005
Mensajes: 37
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: Agregar Varios Item a una Base de datos

Lo que necesitas son dos tablas con relacion de 1 -> n. Un ejemplo es como el de pedidos aqui haris 2 tablas, 1 sería "Pedidos", y la otra "Detalles de Pedido", En la primera guardas info como la del cliente, la fecha , etc, y en la otra los detalles que para ti pueden ser los items pero cada registros que se guarde en detalles del pedido debe de tener el ID del registro que se guardo en al tabla Pedidos.
No se si me deje entender

Pedidos
id
cliente
despachador
transportador
placa
horasalida

DetallePedido
id
pedido
item
cantidad
valorDia

La relacion de estas tablas seria entre los campos pedidos.id y detallespedido.pedido con relacion de 1 -> n
  #6 (permalink)  
Antiguo 19/02/2008, 17:25
 
Fecha de Ingreso: enero-2008
Mensajes: 60
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Agregar Varios Item a una Base de datos

Si pienso que es la mejor forma crear una nueva tabla para Items y relacinarlos con la ID principal de la tabla pedidos...

Muchas Gracias.

Ahora como puedo lograr un boton o algo para que si la persona va a agregar mas artículos pueda hacerlo de tal manera que se muestren solo al dar click en un boton agregar otro artículo.
  #7 (permalink)  
Antiguo 19/02/2008, 17:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Agregar Varios Item a una Base de datos

Si lo quieres hacer al momento debes de usar JavaScript para agregar los cuadros de texto al momento, si lo quieres hacer al recargar la pagina solo es cuestión de agregar los cuadros al presionar el botón.

Saludos.
  #8 (permalink)  
Antiguo 28/02/2008, 08:57
 
Fecha de Ingreso: julio-2003
Mensajes: 65
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Agregar Varios Item a una Base de datos

Hola a todos,

Mi situación es exactamente la que plantea anjovi4, es decir, una tabla principal 'pedidos' y otra secundaria 'detalle_pedidos'.

Tras leer este hilo he realizado el paso de relacionar ambas tablas a través del campo id_pedido.

Mis dudas son:

1. A la hora de insertar un nuevo pedido con su correspondiente artículo, al estar las tablas relacionadas se guarda automáticamente en la tabla 'detalle_pedidos' el campo 'id_pedido' que se le asigna a la tabla 'pedidos'?

2. Mi idea era crear un primer formulario en el que rellenar los datos generales del pedido y un solo artículo, y dar la opción de 'guardar e introducir nuevo artículo' o bien 'guardar y salir'. En el primer caso llamaría a una página donde se mostraran los datos del pedido y el primer articulo metido 'en plano' (no modificables) y un espacio para meter el siguiente articulo. Lo que no se como hacer es como pasarle a esa segunda página el id_pedido que le corresponde al pedido que estoy realizando.

Espero se entiendan mis dudas y podáis echarme una mano.

GRACIAS.
  #9 (permalink)  
Antiguo 28/02/2008, 09:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Agregar Varios Item a una Base de datos

No se inserta automáticamente, tu tienes que pasarle el id_pedido explícitamente al query, algo así:
Código PHP:
$qry "INSERT INTO pedidos ..";
mysql_query$qry );

$id_pedido mysql_insert_id();

$detalle "INSERT INTO detalle_pedidos (id_pedido,...) VALUES ('$id_pedido', ...)";
mysql_query$detalle ); 
Luego como ya tienes $id_pedido, la puedes mandar por GET a tu otra página o vía una variable de sesión.

Saludos.

Última edición por GatorV; 29/02/2008 a las 09:14
  #10 (permalink)  
Antiguo 28/02/2008, 09:08
 
Fecha de Ingreso: julio-2003
Mensajes: 65
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Agregar Varios Item a una Base de datos

GatorV, impresionante me acabas de solucionar mis dudas en un instante. Juega un papel importante el que no conocía la función mysql_last_insertid(), que entiendo que lo que hace es recuperar el último ID que se ha generado, es así?

MIL GRACIAS POR TU RÁPIDA Y ACERTADA AYUDA.
  #11 (permalink)  
Antiguo 28/02/2008, 09:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Agregar Varios Item a una Base de datos

Así es, mysql_insert_id te devuelve el ultimo numero auto-generado de una tabla que tenga autoincrement.

Saludos.

Última edición por GatorV; 29/02/2008 a las 09:15
  #12 (permalink)  
Antiguo 29/02/2008, 03:55
 
Fecha de Ingreso: julio-2003
Mensajes: 65
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Agregar Varios Item a una Base de datos

Hola,

Por si alguien echa mano de este hilo, únicamente corregir que la función que recoge el último id autogenerado es:

mysql_insert_id();

GRACIAS GatorV!
  #13 (permalink)  
Antiguo 29/02/2008, 09:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: Agregar Varios Item a una Base de datos

Cierto, ya he corregido las funciones.

Saludos.
  #14 (permalink)  
Antiguo 29/02/2008, 10:27
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 225
Antigüedad: 17 años, 11 meses
Puntos: 1
Re: Agregar Varios Item a una Base de datos

bro te recomendaria usar ajax seria mas facil o un form dentro de una etiqueta div oculta y cuando le des agregar nuevo item aparezca pero para la mejos forma es el ajax
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 21:55.