Ik probeer een update uit te voeren aan de hand van een foreach.
Dit zijn de query's (ge-echo'd) die ik uitvoer:
UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
UPDATE ST_FAR SET amount='2836' WHERE ean='8712400110136'
UPDATE ST_FAR SET amount='595' WHERE ean='8712400111119'
UPDATE ST_FAR SET amount='284' WHERE ean='8711173002020'
UPDATE ST_FAR SET amount='135' WHERE ean='8712400110044'
UPDATE ST_FAR SET amount='2891' WHERE ean='8712400110037'
UPDATE ST_FAR SET amount='75' WHERE ean='8712400111096'
UPDATE ST_FAR SET amount='2059' WHERE ean='8712400110020'
UPDATE ST_FAR SET amount='0' WHERE ean='8716677005768'
UPDATE ST_FAR SET amount='133' WHERE ean='8716677005751'
UPDATE ST_FAR SET amount='39' WHERE ean='8716677005744'
UPDATE ST_FAR SET amount='457' WHERE ean='8711173001894'
UPDATE ST_FAR SET amount='518' WHERE ean='8711173001870'
UPDATE ST_FAR SET amount='3' WHERE ean='8712400110136'
UPDATE ST_FAR SET amount='2' WHERE ean='8712400110020'
UPDATE ST_FAR SET amount='1' WHERE ean='8712400110044'
UPDATE ST_FAR SET amount='3' WHERE ean='8711173001887'
UPDATE ST_FAR SET amount='5' WHERE ean='8711173001870'
UPDATE ST_FAR SET amount='1' WHERE ean='8712400110037'
Nu werkt het grootste deel van deze query's wel. Alleen sommige niet.
Bij
UPDATE ST_FAR SET amount='625' WHERE ean='8711173001887'
komt er bijvoorbeeld in de database '3' te staan. Netals bij
UPDATE ST_FAR SET amount='2059' WHERE ean='8712400110020'
2 komt. Terwijl
UPDATE ST_FAR SET amount='595' WHERE ean='8712400111119'
wel gewoon correct werkt.Maar
UPDATE ST_FAR SET amount='135' WHERE ean='8712400110044'Weer niet.
Ik heb al gekeken in mijn database, het staat nu als INT(11). Wijzigen naar varchar werkt niet.
Via andere hosting geprobeerd maar alsnog hetzelfde probleem.
Als ik echter de foreach weghaal en in elke query handmatig '2059' zet, werkt het wel.
Iemand enig idee hoe dit kan komen?
function updateStock($ean, $amount, $stock, $name){
if(p($stock.'.stocks.import')){
$st = 'ST_'.$stock;
$query = mysql_query("SELECT * FROM {$st} WHERE ean='{$ean}' LIMIT 1");
if (mysql_num_rows($query)!=0) {
$query = "UPDATE {$st} SET amount='{$amount}' WHERE ean='{$ean}'";
mysql_query($query);
echo $query;
} else {
$query3 = mysql_query("INSERT INTO {$st} (ean, amount, name)
VALUES ('".$ean."','".$amount."','".$name."')");
$query4 = mysql_query("INSERT INTO PRODUCTS (ean, name)
VALUES ('".$ean."','".$name."')");
}
}
}
foreach($goods_list as $item) {
updateStock($item['goods_ean'], $item['avail_count'], $stock, $item['goods_name']);
}
Groet,
Joep de Jong
