Ayuda con logística de tabla de uno a varios!

Hola saludos necesito vuestra ayuda para la lógica de un minisistema que quiero programar en php y mysql en donde tengo dificultad es en la relación de uno a varios tengo la tabla compras(uno) con los campos id_compra(int3), fecha_compra(date), proveedor_compra(varchar30), importado_de(int1) y tengo la tabla productosxcompra(varios) con los campos id_producto(varchar10), cantidad_productos(int 4), precio_compra(double), id_compra(int 3) y lo que quiero hacer con estas tablas es en unf formulario primero introducir los datos de la compra y en el mismo formulario ir añadiendo tantos productos se hayan comprado digamos si agrego uno que se vaya agregando diagamos en una tabla y si agrego otro que se vaya agregando a esa tabla así susesuvamente y ya cuando haya terminado de agregar los productos a esa compra que haya un botón por decir algo guardar compra bien lo que no me queda claro de hacer es eso como guardar todos eso productos en esa compra por favor si me dieras una idea o me pudieras proporcionar un ejemplo similar te lo agradeceré infinitamente gracias saludos!

3 respuestas

Respuesta
1
Especifica qué es lo que quieres porque no entiendo lo que has escrito. No sé si quieres que te ayude con la relación de las tablas en base de datos o con el formulario.
Te dejo un enlace con un ejemplo muy variado de todo lo que creo que has dicho.
http://www.programacion.com/php/articulo/php_mysql/
Hola en lo que necesito ayuda es en como iría el código es decir como se hace para guardar digamos si tengo 5 productos introducidos en el formulario por que yo se como hacerlo si digamos tengo que introducir un producto por compra a la ves pero si es más de uno esa lógica es que no me queda clara!
¿Cómo eliges los productos en el formulario que ya tienes? Los escribes, los seleccionas de una lista desplegable, los marcas con checkboxes, ¿cómo?
Pues bueno ahí en el formulario tengo un select donde seleccino de que país son en base a eso me filtra en otro select solo los códigos de los productos de dicho país y así selecciono el código del producto para que me rellene en otros text el nombre y precio del producto escogido ese es el método que se me ocurrió de paso tal vez me podrías regalar alguna idea en este modo de hacer esto!
¿Pero quieres añadir cinco productos con el mismo código del mismo país?
Es decir, seleccionas por ejemplo, África, y se actualiza la lista de productos, ¿seleccionas el código 001 (por ejemplo) y ahí rellenarías los cinco productos?
¿Tiene qué ser un número de productos fijo o variable?
Se me ocurre que, si se trata de productos con el mismo código y del mismo país, añadís cinco campos text, de manera fija, para que se rellenen con el nombre y precio.
O bien, que a través de javascript/ajax, coloques un enlace que sea "añadir otro producto" y al hacer click, añada (de manera dinámica) más campos text que se puedan rellenar.
De estas dos maneras, el nombre del los input text debería ser con corchetes, por ejemplo, nombreproducto[] y precioproducto[] y a la hora de recoger la request para guardarlo en base de datos, lo que recoges no es un nombre de producto, sino un array de nombres.
Es decir, si tienes cinco <input type="text" nombre="nombreproducto[]" id="nombreproducto[]">, una vez que envias el formulario, lo recoges de esta manera: $nombres = $_POST['nombreproducto'] y para ver el contenido lo recorrerías con un foreach, por ejemplo: foreach($nombres as $nombre) {echo $nombre;}
Respuesta
1
Yo irías guardando la id del producto en session (en un array) y una vez finalizada la compra, pasaría el array a la base de datos.
Respuesta
1
Yo hice un sistema similar, y lo que yo tenía eran tablas de:
Proveedores: razón social, nombre del contacto etc.
Productos: con todos sus datos, descripción, proveedor, precio, etc
Compras: datos muy generales de la compra, fecha, numero de compra, folio, proveedor
Compras_producto: datos específicos de la compra, los productos, cantidad, y el subtotal por producto
Y luego lo que hacíe era que en el formulario era:
Al iniciar la venta, el programa revisa el punto de reorden para los artículos en inventario, y muestra una notificación si es necesario resurtir el producto. Este punto de reorden se calcula en base a las ventas que cada producto ha obtenido en la última semana y a un tiempo promedio para resurtir el artículo.
Al agregar un producto, entra en juego una función de AJAX que revisa si en la base de datos hay suficiente producto como para satisfacer la compra.
Si no hay suficiente, muestra una notificación.
Si hay suficiente, revisa si el producto tiene algún añadido, y la existencia de este, si no hay suficiente, solo se agregan el número de añadidos disponibles.
Reviso si ya llevo un producto igual, y si así es, sumo las cantidades de producto.
Genera la tabla.- Calcula los precios menos el porcentaje de descuento si es que lo hay, calcula el total, y vacía todos los datos relevantes de los artículos en la tabla de productos agregados
Todo esto lo iba guardando en un arreglo de sesión con la misma estructura que la tabla:
[indice][cod_producto][descripcion_prof][cantidad][precio]
Y si se me ofrecía eliminar un elemento de la tabla, usaba array_splice para eliminar la posición deseada.
Así es como lo Hacía a grandes rasgos, espero que te sirva de algo para diseñar tu algoritmo, en caso de que requieras más ayuda con algo, ya sabes que por aquí estamos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas