Ik heb 3 tabellen in mijn database:
categories:
-id
-name
products:
-id
-categories_id
-name
prod_details:
-id
-products_id
-size
-price
Ik heb dus een 15-tal categorien, een 4000-tal producten en per product ongeveer 5 groottes met bijhorende prijs wat maakt dat de laatste tabel ongeveer 20000 records heeft.
Om de zoveel tijd wordt via een formulier een excel file geupload met aangepaste prijzen van deze producten en/of met nieuwe producten. Ik moet dus alle records doorlopen, kijken of het product aanwezig is, indien ja dan moet ik de prijs updaten en indien neen dan moet ik het toevoegen. Hieronder vind je de query die ik heb gebruikt. Als ik die 20000 records moet doorlopen duurt dat echter heel lang. Wie kan me helpen om dit efficienter te laten verlopen?
Alvast enorm bedankt!!
for($i = 1; $i <= $aantalrecords; $i++){
$sql = mysql_query("SELECT d.id
FROM prod_details AS d
LEFT JOIN products AS p ON p.id = d.products_id
LEFT JOIN categories AS c ON c.id = p.categories_id
WHERE d.size = $size[$i]
AND p.name = $pname[$i]
AND c.name = $cname[$i]);
if(mysql_num_rows($sql) == 0){
//hier de code voor de INSERT
}
else
//hier de code voor de UPDATE
}
categories:
-id
-name
products:
-id
-categories_id
-name
prod_details:
-id
-products_id
-size
-price
Ik heb dus een 15-tal categorien, een 4000-tal producten en per product ongeveer 5 groottes met bijhorende prijs wat maakt dat de laatste tabel ongeveer 20000 records heeft.
Om de zoveel tijd wordt via een formulier een excel file geupload met aangepaste prijzen van deze producten en/of met nieuwe producten. Ik moet dus alle records doorlopen, kijken of het product aanwezig is, indien ja dan moet ik de prijs updaten en indien neen dan moet ik het toevoegen. Hieronder vind je de query die ik heb gebruikt. Als ik die 20000 records moet doorlopen duurt dat echter heel lang. Wie kan me helpen om dit efficienter te laten verlopen?
Alvast enorm bedankt!!
for($i = 1; $i <= $aantalrecords; $i++){
$sql = mysql_query("SELECT d.id
FROM prod_details AS d
LEFT JOIN products AS p ON p.id = d.products_id
LEFT JOIN categories AS c ON c.id = p.categories_id
WHERE d.size = $size[$i]
AND p.name = $pname[$i]
AND c.name = $cname[$i]);
if(mysql_num_rows($sql) == 0){
//hier de code voor de INSERT
}
else
//hier de code voor de UPDATE
}