Có lẽ tốt nhất nên thực hiện việc này dưới dạng một đoạn SQL duy nhất:-
UPDATE stock a INNER JOIN order b ON a.part = b.part
SET a.available = a.available - b.qty
WHERE b.invoice` = '$order'
Lưu ý rằng bạn không chỉ chạy lại quá trình này nhiều lần mà không có cách nào đó để kiểm tra xem một đơn đặt hàng chưa được sử dụng để cập nhật hàng trong kho
Làm theo cách này, nếu bạn có 1000 mặt hàng trong đơn đặt hàng thì đó là một truy vấn duy nhất. Thực hiện một lựa chọn và sau đó lặp lại các kết quả sẽ yêu cầu 10001 truy vấn.