Det er nok bedst at gøre dette som et enkelt stykke SQL:-
UPDATE stock a INNER JOIN order b ON a.part = b.part
SET a.available = a.available - b.qty
WHERE b.invoice` = '$order'
Pas på, at du ikke bare gentager dette flere gange uden en måde at kontrollere, at en ordre ikke allerede er blevet brugt til at opdatere lagerbeholdningen
Hvis du gør det på denne måde, hvis du havde 1000 varer på ordren, er det en enkelt forespørgsel. At foretage en udvælgelse og derefter gå rundt om resultaterne ville kræve 10001 forespørgsler.