これが私のcsvファイルだとします
fileempId,lastName,firstName,middleName,street1,street2,city,state,zip,gender,birthDate,ssn,empStatus,joinDate,workStation,location,custom1,workState,salary,payFrequency,FITWStatus,FITWExemptions,DD1Routing,DD1Account,DD1Amount,DD1AmountCode,DD1Checking,DD2Routing,DD2Account,DD2Amount,DD2AmountCode,DD2Checking
1,Dela Cruz,Juano,Santos,,,,,,1,,,Part Time Internship,, asd Division, Makati,one, asd,150,Bi Weekly,Not Applicable,100,,,,,,1234,9876,100,SAVINGS,BLANK
3,Palogan,Ralph,,,,,,,1,11-Mar-11,,Full Time Contract,2-Mar-11, sdf Department, pasay,, ,,,Not Applicable,,,,,,,,,,, 5,San,Goku,,,,hidden leaf,,,1,11-Mar-11,,,,,,,,,,Not Applicable,0,,,,,,,,,,
これが私のフォームです
<label>Choose File:</label><font color="#FF0000">*</font>
<input type="file" name="file" id="file" />
<input type="button" id="importButton" value="Import" name="importButton" />
csv でデータを読み取り、それを mysql データベース (codeigniter) に保存する方法は? それを行う方法に関するサンプルコード。
以下の私のコードの何が問題なのか見てください..
jqueryとフォームを含む私のビューページ、、。
<td><label>Choose File:</label><font color="#FF0000">*</font></td>
<td><input type="file" name="file" id="file" /></td>
<td><label>Import Type </label><font color="#FF0000">*</font></td>
<td><select name="importname" id="importname" style="width:130px;">
<option value="" selected>--Select--</option>
<?php
foreach($fields as $data){
print '<option value="'.$data->import_id.'">'.$data->name.'</option>';
}
?>
</select></td>
<script type="text/javascript">
$(function() {
$("#importData").click(function(e) {
var file = $('#file').val();
var type = $('#importname').val();
$.post("<?php print base_url().'index.php/MyController/readExcel'?>",{file: file, type: type},
function(data)
{
if(data!='success')
{
error_message(data);
}
else{
alert("Upload Succcessfull!");
}
});
});
});
</script>
私のコントローラー
function readExcel(){
$file=$this->input->post('file');
$type=$this->input->post('type');
$this->load->library('csvreader');
$result = $this->csvreader->parse_file($file);
$data['csvData'] = $result;
$this->load->view('MyViews/showImportFile', $data);
}
私の図書館
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class csvreader {
var $fields; /** columns names retrieved after parsing */
var $separator = ';'; /** separator used to explode each line */
var $enclosure = '"'; /** enclosure used to decorate each field */
var $max_row_size = 4096; /** maximum row size to be used for decoding */
function parse_file($p_Filepath) {
$file = fopen($p_Filepath, 'r');
$this->fields = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure);
$keys_values = explode(',',$this->fields[0]);
$content = array();
$keys = $this->escape_string($keys_values);
$i = 1;
while( ($row = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure)) != false ) {
if( $row != null ) { // skip empty lines
$values = explode(',',$row[0]);
if(count($keys) == count($values)){
$arr = array();
$new_values = array();
$new_values = $this->escape_string($values);
for($j=0;$j<count($keys);$j++){
if($keys[$j] != ""){
$arr[$keys[$j]] = $new_values[$j];
}
}
$content[$i]= $arr;
$i++;
}
}
}
fclose($file);
return $content;
}
function escape_string($data){
$result = array();
foreach($data as $row){
$result[] = str_replace('"', '',$row);
}
return $result;
}
}
エラーが発生します
PHP エラーが発生しました
重大度: 警告
メッセージ: fopen(export 1.csv): ストリームを開けませんでした: そのようなファイルまたはディレクトリはありません
ファイル名: libraries/csvreader.php
誰でも私を助けてくれませんか!!!