Estoy tratando de insertar y valores en mi base de datos y pensé que tener el mismo nombre para las entradas en mi formulario me facilitaría insertarlos a granel, quiero iterar OrderNo y cantidad e insertarlos en una nueva columna mientras mantiene las otras entradas como fname igual hasta que se completan los valores en OrderNo.
app.post("/send-data", (req,res)=>{ let sql = "INSERT INTO foodorder.orders (" + "food_id," + " qty,"+ " customer_FName," + " customer_LName," + " customer_number," + " customer_email," + " customer_facebook," + " order_date," + " delivery_option," + " mode_of_payment," + " delivery_time" + ") VALUES (" + ` ${req.body.OrderNo},` + ` ${req.body.quantity},` + ` "${req.body.fname}",` + ` "${req.body.lname}",` + ` "${req.body.Contact}",` + ` "${req.body.email}",` + ` "${req.body.facebook}",` + ` "${req.body.date}",` + ` "${req.body.delivery}",` + ` "${req.body.payment}",` + `"${req.body.time}"` + `)`; con.query(sql, (err,result) => { if(!err){ res.send(result); } else{ res.json(req.body); throw err; } }) });Este es el código que tengo y actualmente solo acepta 1 OrderNo y cantidad y cuando intento pedir muchos productos con diferentes cantidades, dirá que el recuento de columnas no coincide con el recuento de valores en la fila 1 (ver foto adjunta a continuación)
[el resultado que obtengo de mis formularios * No incluí en la captura de pantalla los otros detalles de salida, como el correo electrónico, etc.] [1]
¿Hay alguna manera de simplemente iterar el número de pedido y la cantidad e insertarlos creando nuevas columnas pero con el mismo fname y lname, etc.? ¿O necesito usar el cursor MySql?
Tenga en cuenta que mi código funciona e inserta si solo he seleccionado 1 pedido y 1 cantidad en mis formularios
ACTUALIZAR
Adjunto aquí está lo que quiero lograr. Quiero saber una forma de iterar o repetir el número de pedido y la cantidad e insertarlos en sus respectivas columnas mientras mantengo los otros valores como fname y lname.
Solucionado iterando el OrderNo. muchas gracias diogo
app.post("/send-data", (req,res)=>{ let order = req.body.OrderNo; let quantity = req.body.quantity; let first = req.body.fname, last = req.body.lname, contact = req.body.Contact, email = req.body.emailAdd, fb = req.body.facebook, date = req.body.date, delivery = req.body.delivery, payment = req.body.payment, time = req.body.time, address = req.body.address; [order].forEach((product, index, arr)=>{ const q = quantity[index]; let sql = "INSERT INTO foodorder.orders (" + "food_id," + " qty,"+ " customer_FName," + " customer_LName," + " customer_address," + " customer_number," + " customer_email," + " customer_facebook," + " order_date," + " delivery_option," + " mode_of_payment," + " delivery_time" + ") VALUES (" + con.escape(product) + `,` + con.escape(q) + `,` + con.escape(first) + `,` + con.escape(last) + `,` + con.escape(address) + `,` + con.escape(contact) + `,` + con.escape(""+email) + `,` + con.escape(fb) + `,` + con.escape(date) + `,` + con.escape(delivery) + `,` + con.escape(payment) + `,` + con.escape(time) + `)`; con.query(sql, (err,result) => { if(!err){ res.redirect('thankyou.html'); } else{ res.status(404).send('ERROR. Please Go back and Order Again'); } }) }) });