2011-07-21 12 views
0

大きなカテゴリの.txtファイルをmysqlデータベースにインポートする必要があります。このテキストファイルには、3つのレベルのカテゴリがあります。カテゴリテキストファイルを爆発するPHP配列

私のテキストファイルの外観は、(+/- 362個のエントリ)以下の例を好き:

Business 
Business = Business Innovation & Ideation = Innovation 
Business = Economics 
Business = Economics = Global Economics 

私のデータベースのテーブル構造:私は何をしたいか

| id | cat | sub_cat | sub_sub_cat | 

、中カテゴリを挿入しています私のデータベースphp。 cat、subとsub_sub catの間のセパレータは '='です。私が到達したいのは、このデータをデータベースに挿入するループのようなものです。

アドバイスありがとうございます。種類に関しては

ニッキー

+0

'空sub_catと空のsub_sub_catと独自の行もBusiness'でしょうか? –

+0

はい、これは、サブまたはサブ_サブを含まないヘッドカテゴリです。 – Nicky

答えて

0
$lines = file('category.txt'); // slurp file and split into an array by lines 

foreach($lines as $line) { 
    $parts = explode('=', $line); // decompose a line into individual sections 
    $cat = mysql_real_escape_string(trim($parts[0])); // prepare sections for SQL 
    $subcat = mysql_real_escape_string(trim($parts[1])); 
    $subsubcat = mysql_real_escape_string(trim($parts[2])); 

    $sql = "INSERT INTO yourtable (cat, sub-cat, sub_sub_cat) VALUES ('$cat', '$subcat', '$subsubcat');"; 
    mysql_query($sql) or die(mysql_error()); 
} 
+0

ありがとう!それは私のテキストファイルで何かが間違っているように見えるが挿入が良いではなかった(テーブルの1つのセルで4分の5のエントリと何もない)しかし、あなたのコードは良いように見えます。私はあなたに何がうまくいかないことを知らせます。大変ありがとうございました – Nicky

+0

これは修正されました。空のエントリにキャッチしてnullに設定する必要がありました。ありがとう! – Nicky