Pravděpodobně nejlepší je to udělat jako jeden kus SQL:-
UPDATE stock a INNER JOIN order b ON a.part = b.part
SET a.available = a.available - b.qty
WHERE b.invoice` = '$order'
Dejte si pozor, abyste to nezopakovali několikrát, aniž byste si ověřili, že objednávka již nebyla použita k aktualizaci zásob
Pokud to uděláte tímto způsobem, pokud máte na objednávce 1000 položek, je to jediný dotaz. Provedení výběru a následné procházení výsledků by vyžadovalo 10 001 dotazů.