0

I need to import data from two csv files.

If the second file contain same sku it should only update if price is lower than price exist.

Here is my code:

$sql = mysql_query("INSERT INTO varer (sku,productname,price,mpn,stock,distributor)  

VALUES ('$sku','$productname','$price','$mpn','$stock','$distributor')"); 

Above code works fine for just inserting data so problem is only if same sku will be there.

Here is what i want to do:

If $SKU exists in database and $price is lower than price exist in database it should update $price, $productname, $stock, $distributor

Please let me know if you have any suggestions.

Florent
  • 12,310
  • 10
  • 49
  • 58
Chris
  • 1
  • 4
    Holy SQL injection vulnerability, Batman! – cdhowie Oct 03 '12 at 15:11
  • Please, before you cause serious harm to your client, the company you're working for, or your career, learn how to use [SQL escaping](http://bobby-tables.com/php) properly. This is not an academic concern. As you have it here, a product name of `Bob's Tools` will crash your application. – tadman Oct 03 '12 at 16:40

1 Answers1

1

From the docs

INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)
  ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

Seems like the original colum is available under its name, and the values to be inserted need the VALUES() function. Updating to the max of new and old price should be easy: How to get the max of two values in MySQL?

Community
  • 1
  • 1
Sven
  • 69,403
  • 10
  • 107
  • 109
  • Update to the MIN of both prices then. – Sven Oct 03 '12 at 15:16
  • I am not clear i think i have tried everything regarding this i just dont get it :-) $sql = mysql_query("INSERT INTO varer (sku,productname,price,mpn,stock,distributor) VALUES ('$sku','$productname','$price','$mpn','$stock','$distributor')"); *** IF it find same $sku in database, it should check if price for that sku in the database is lower than the price from this csv file. if price is lower it should update price, productname, mpn, etc from the csv file. Let me know how you would do it in this example – Chris Oct 03 '12 at 18:16