I am currently running two queries in order to:
These queries are working, but I was wondering if there was a more efficient way of doing this by combining it into one query:
$insert_order = $db->query("INSERT INTO store_orders (CartID, OrderStatus, CustomerID, CartData, CartNumItems, CartCost, CartWeight, ShippingData, ShippingMethod, ShippingCost, OrderData, CustomerNotes, IP) SELECT CartID, OrderStatus, CustomerID, CartData, CartNumItems, CartCost, CartWeight, ShippingData, ShippingMethod, ShippingCost, OrderData, CustomerNotes, IP FROM store_carts WHERE CartID = '$cart_id' LIMIT 1");
$order_number = $db->insert_id;
$update_order = $db->query("UPDATE store_orders SET OrderStatus=3, Merchant='PayPal WPP', MerchantData='$MerchantData', Receipt='$receipt', Charged=1, ChargeAmount='$ChargeData[AMT]' WHERE ID = '$order_number' LIMIT 1");
You can set static values on your SELECT query, for example select '1', 'asd', 3, column from table
In a single command, your insert would be:
$insert_order = $db->query("INSERT INTO store_orders (CartID, OrderStatus, Merchant, MerchantData, Receipt, Charged, ChargeAmount, CustomerID, CartData, CartNumItems, CartCost, CartWeight, ShippingData, ShippingMethod, ShippingCost, OrderData, CustomerNotes, IP) SELECT CartID, 3, 'PayPal WPP', '$MerchantData', '$receipt', 1, '$ChargeData[AMT]', CustomerID, CartData, CartNumItems, CartCost, CartWeight, ShippingData, ShippingMethod, ShippingCost, OrderData, CustomerNotes, IP FROM store_carts WHERE CartID = '$cart_id' LIMIT 1");
I do not know if this will work, but you could try using static values where known:-
$insert_order = $db->query("INSERT INTO store_orders
(CartID, OrderStatus, Merchant,
MerchantData, Receipt, Charged,
ChargeAmount, CustomerID, CartData,
CartNumItems, CartCost, CartWeight,
ShippingData, ShippingMethod, ShippingCost,
OrderData, CustomerNotes, IP)
SELECT
CartID, 3, 'PayPal WPP',
'$MerchantData','$receipt', 1,
'$ChargeData[AMT]', CustomerID, CartData,
CartNumItems, CartCost, CartWeight,
ShippingData, ShippingMethod, ShippingCost,
OrderData, CustomerNotes, IP
FROM store_carts
WHERE CartID = '$cart_id' LIMIT 1");