Voorraad aanpassen bij order bewerking
Bij een gewone bestelling (die in ORDERS komt) wordt de voorraad in PRODUCT verlaagd dmv dit:
$query1 = "UPDATE PRODUCTEN SET VOORRAAD=VOORRAAD-".$AANTAL1." WHERE PRODUCTNR=".$PRODUCTNR1."";
mysql_query($query1) or die (mysql_error());}
Maar nu wil ik dus ook de voorraad aanpassen bij het bewerken van een order. Ik wil dus eigenlijk eerst het veld VOORRAAD in ORDERS verhogen met het aantal dat al ingevuld was en dan verlagen met de nieuwe waarde.
Daarvoor heb ik dit geschreven:
$sql = "SELECT VOORRAAD FROM PRODUCTEN WHERE PRODUCTNR=$PRODUCTNR1";
$res = mysql_query($sql) or die(mysql_error());
$rij = mysql_fetch_array($res);
$sqll = "SELECT AANTAL1 FROM ORDERS WHERE ORDERNR='".$_GET['ORDERNR']."'";
$res = mysql_query($sqll) or die(mysql_error());
$rij = mysql_fetch_array($res);
$aanpasvoorraad1 = "UPDATE PRODUCTEN SET VOORRAAD=$rij['VOORRAAD']+rij['AANTAL1']-['AANTAL1']";
$resultaanpas1 = mysql_query($aanpasvoorraad1) or die( mysql_error());
Dit voeg ik toe tussen:
if($_SERVER['REQUEST_METHOD'] == "POST") {
if($_POST['MEDNR'] != "" || $_POST['KLANTNR'] != ""){
en
$query = "UPDATE ORDERS SET MEDNR='".addslashes($_POST['MEDNR'])."', KLANTNR='".addslashes($_POST['KLANTNR'])."', LEVERDATUM='".addslashes($_POST['LEVERDATUM'])."', KORTING='".addslashes($_POST['KORTING'])."', OPMERKINGEN='".addslashes($_POST['OPMERKINGEN'])."' , PRODUCTNR1='".addslashes($_POST['PRODUCTNR1'])."', AANTAL1='".addslashes($_POST['AANTAL1'])."' WHERE ORDERNR='".$_GET['ORDERNR']."'";
$result = mysql_query($query) or die( mysql_error());
Gek genoeg wordt $query wel uitgevoerd maar veranderd er niets bij voorraad
Zelf had ik de voorraad pas aangepast bij de bestelling...
Maar dit gaat over de situatie waarin een order achteraf aangepast moet worden.
Waarom zelf programmeren? Wat voor versie MySQL gebruik je? Vanaf v5 kun je gebruik maken van triggers, die zijn hier nu juist zo geschikt voor.
En ik heb 4.0.2.8
:(