1

データベースにインポートされたデータに1つのcsvを作成する必要がありましたが、1つの混乱があります

3つのテーブルに関連する私のcsvデータ

したがって、どのように分離され、次のようなcsvを作成するための可能な方法1)表1にデータがすでにある場合、必要なデータを挿入するかどうかを確認するか、そのデータを更新します2)データが挿入されない場合も結果が挿入されると同時に表示される場合も必要です挿入されません等...

4

3 に答える 3

1

私はこのコードを実装しており、テスト済みのコードです。とても使いやすいと思います

あなたはいくつかのルールに従っています:-

1. データベース テーブル名による csv ファイル (例: データベース テーブル名が users の場合、csv は users.csv である必要があります)

2.csv ファイルの最初の行は、データベース テーブル フィールド名 (例: ID、名前など) である必要があります。その後、データ入力を開始します。

3.データソースクラスを次からダウンロードできます:- http://code.google.com/p/php-csv-parser/コードの下にrequireがあるため:

<?php
ini_set('memory_limit','512M');
$dbhost = "localhost";
$dbname = "excel_import";
$dbuser = "root";
$dbpass = "";

$conn=mysql_connect ($dbhost, $dbuser, $dbpass) or die ("I cannot connect to the database because: " . mysql_error());
mysql_select_db($dbname) or die("Unable to select database because: " . mysql_error());


require_once 'CSV/DataSource.php';

$filename = "Book1.csv";
//$filename = $_POST['filename'];
$ext = explode(".",$filename);

$path = "uploads/".$filename;

$dbtable = $ext[0];


import_csv($dbtable, $path);


function import_csv($dbtable, $csv_file_name_with_path)
{
    $csv = new File_CSV_DataSource;
    $csv->load($csv_file_name_with_path);

    $csvData = $csv->connect();

    $res='';
    foreach($csvData  as $key)
    {
        $myKey ='';
        $myVal='';
        foreach($key as $k=>$v)
        {


            $myKey .=$k.',';
            $myVal .="'".$v."',";

        }
        $myKey = substr($myKey, 0, -1);
        $myVal = substr($myVal, 0, -1); 




        $query="insert into ".$dbtable." ($myKey)values($myVal)";
        $res=  mysql_query($query);

    }

    if($res ==1)
    {

    echo "record successfully Import.";
    }else{

    echo "record not successfully Import.";
    }
}

?>
于 2012-08-09T05:30:28.980 に答える
0
$row = 1;

if (($handle = fopen("path to your csv file/data.csv", "r")) !== FALSE) 
{
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
    {
        $row++;
        print_r($data);
    }

    fclose($handle);
}

印刷されたデータに基づいて、さらに手順を実行できます。

于 2012-08-09T06:20:25.947 に答える