2011-01-29 6 views
0

私は、クラスIDの列とそのクラスの学生の学生IDの列を持つExcelファイルを持っています。詳しくは、画像を参照してください。 EX:MySQLデータベースのExcelデータを転記する方法は? (PHPスクリプトが必要です)

ART VIS D1 | ART VIS D2
STU00| STU000234
など

何とかしてDBに解析して挿入します。私のデータベースの中には、クラスに特有の3つのテーブルがあります。 1つはクラスと呼ばれます。これには一意のID(1,2,3など)とClassID(例:ART VIS D1)が含まれています。

もう1つは生徒と呼ばれ、STU ID(最初のテーブル... STU000123など)、ID(1,2,3,4など)、その他の個人情報が含まれています。 IDフィールドは、学生を識別するために使用されるものです。

第3のテーブルはstudent_to_classと呼ばれ、基本的に生徒のIDと割り当てられたクラスのIDが一致します。構造:id(auto inc)、student_id、class_id

ここで私がしようとしているのは、最初のテーブルのStudent IDと適切なクラスを取り、クラスIDとstudentを取得するスクリプトですIDをClassおよびStudentsテーブルから取得し、それらのIDをstudent_to_classに挿入して、それらのIDをそのクラスに割り当てます。ここで

はすべて言及したファイル/構造の画像へのリンクです: http://img209.imageshack.us/g/excelz.png/

私は任意の助けをいただければと思います!

+2

PHPExcel(http://phpexcel.codeplex.com)は、Excelファイルを簡単に読み書きするためのExcel(貸し出し)ライブラリです。 –

答えて

1

これらをタブ区切りとして保存し、MySQLでLOAD DATA INFILEコマンドを使用することを検討してください。

サーバーに直接アクセスできない場合は、タブ区切り形式で保存し、PHPでfile()関数を使用してファイルを読み込んで解析し、explode("\t", ...)を使用して各行を列に分解します。

ブラウザから繰り返しアクセスする場合は、ブラウザからファイルをPHPにアップロードし、上記の手法を使用して解析することができます。

また、上記で指摘したように、http://phpexcel.codeplex.comは、タブ区切りとして保存する必要性を排除するライブラリです。

幸運を祈る!

+0

お返事ありがとうございます。 PHP用にZIPがインストールされていないようです。あなたの区切り文字オ​​プションにショットを付けます。 –

0

Toad for MySQL(http://www.quest.com/toad-for-mysql/)を入手し、Excelファイルをインポートするウィザードがあり、タブ区切りにする必要はありません。

+0

お返事ありがとうございます。残念ながら私はこれをMacサーバーでやっているので、Toadと互換性があるとは思わない。 –

0

たぶん、あなただけのbash ...簡単な例を使用することができます

cat file.txt | awk -F "|" {'print $FIRST_COLUMN $SECOND_COLUMN'})

をそして独自のロジックを実装し、AWKは非常に強力な言語です。

関連する問題