0

必要な場所に到達するために fgetcsv の質問と回答をつなぎ合わせようとしていますが、必要な結果を得るのに十分な基本を把握していません。タブ区切りファイルのサンプル....

╔══════════════╦════════════╦═══════╦══════════╗
║     sku      ║    asin    ║ price ║ quantity ║
╠══════════════╬════════════╬═══════╬══════════╣
║ 00-1IAB-H5E9 ║ B008S0TEFQ ║ 5.00  ║        1 ║
║ 00-BOXP-HDX4 ║ B00BP9N4JO ║ 20.00 ║        1 ║
╚══════════════╩════════════╩═══════╩══════════╝

SKU に基づいて、新しい数量でデータベースを更新する必要があります。同様の回答がたくさん見つかりましたが、私が必要としているものとはまったく異なります。価格と ASIN は無視されます。関連部分のこれまでの私のコードは次のとおりです。

$fin = fopen('qtyme.txt','r') or die('cant open file');
$link = mysql_connect('xxxx.com', 'xxxx', 'xxxx');
If (!$link) {
    die ('Could not connect: ' . mysql_error());
}
@mysql_select_db('xxxx') or die ('Unable to select database');
echo "Connection succeeded, starting processing..... <br />\n";
while (($data=fgetcsv($fin,r,"/t"))!==FALSE) {
    $query = "UPDATE products SET products_quantity = '".$data[3]."' WHERE products_sku = '".$data[0]."'";
    mysql_query($query);
    echo ($query) . "<br />\n";
    }
fclose($fin);
mysql_close();

明らかに私は自分が何をしているのかわかりませんが、列を定義してUPDATEの適切なデータを引き出すことに問題があるようです。

ヘルプ?

最終的な解決策: 助けてくれてありがとう!

$link = mysql_connect('xxxx', 'xxxx', 'xxxx'); If (!$link) {
    die ('Could not connect: ' . mysql_error()); } @mysql_select_db('xxxx') or die ('Unable to select database');

$sql = "TRUNCATE TABLE `tmpStock`"; mysql_query($sql); echo "Temporary Table Deleted...<br>";

$result = mysql_query("LOAD DATA LOCAL INFILE 'qtyme.txt' INTO TABLE tmpStock FIELDS TERMINATED BY '\t' ENCLOSED BY '\"' LINES TERMINATED BY '\n'")or die ('Error: '.mysql_error ()); echo "Temporary Data Uploaded and Inserted...<br>";

$result = mysql_query("UPDATE products a INNER JOIN tmpStock b ON a.products_sku = b.sku SET a.products_quantity = b.quantity")or die ('Error: '.mysql_error ()); echo "All Quantity's Updated...";

mysql_close($link);
4

1 に答える 1