0

1 つの CSV ファイルを MySQL にアップロードし、データとテーブルに特定の変更を加えて別の CSV ファイルをエクスポートできる PHP 関数を作成しようとしています。

CSV-1:

テーブル名 = Photolink

表の内容 = http://www.sitename.com/image1.jpg

次のように変換します。

CSV-2:

テーブル名 = img_URL

表の内容 = product/image1.jpg

これが機能するようにコードを変更するには、あなたの助けが必要です。

私はこのコードを試しましたが、うまくいきません。友達が修正を手伝ってくれますか!

        $data1 = $mysql->prepare("INSERT INTO products (name, model, quantity, image_url) VALUES (:name, :model, :quantity, :image_url)");
    $data1->bindParam(':name', $name);
    $data1->bindParam(':model', $model);
    $data1->bindParam(':quantity', $quantity);
    $data1->bindParam(':image_url', $image_url);



    if ($_FILES[csv][size] > 0) {

        //get the csv file
        $file = $_FILES[csv][tmp_name];
        $handle = fopen($file,"r");

    while ($data = fgetcsv($handle,1000,",","'")) {
        if ($data[0]) {

        $name = $data[0];
        $model = $data[1];
        $quantity = 100;
        $image_url = $data[2];
        $data1->execute();

        }
    }
4

1 に答える 1

1

ループを裏返します:

while ($data = fgetcsv($handle,1000,",","'")) {
    if ($data[0]) {
        mysql_query("INSERT INTO products (name, model, quantity, image_url) VALUES
            (
                '".addslashes($data[0])."',
                '".addslashes($data[1])."',
                //quantity is 100 for all
                '100',
                '".addslashes($data[2])."'
            )
        ");
    }
}

元のコードでは、ステートメント$dataで定義するまでまだ存在しないためです。while

他にも多くの問題がありますが、これでうまくいくはずです。

于 2013-03-31T19:50:24.337 に答える