Reputation: 493
I have text file containing data. Each line in the text file contains 12 data separated by space. I want to import the same to mysql table with each data going to respective fields. The data should append to the table. I know how to append data using html forms but, do not know file operations. Any suggestions?
Upvotes: 0
Views: 16599
Reputation: 535
if(isset($_POST['Import'])){
$file= $_FILES['fimport']['tmp_name'];
$handle=fopen($file,'r');
while(($fileop=fgetcsv($handle,1000,","))!=false){
$name=$fileop[0];
$email=$fileop[1];
$userid=$this->session->userdata('id');
$this->db->query("insert into usersemail(user_name,user_email,user_id)values('$name','$email','$userid')");
}
Upvotes: 0
Reputation: 583
try this...
$file = $_FILES['frmUpload']['tmp_name']; // Get Temporary filename
if ($file) {
$handle = fopen($file,"r"); // Open the file and read
while($strBookData = fgetcsv($handle, 10000, " ")) {//To get Array from CSV, " "(delimiter)
$strDatas[] = $strBookData;
$strTableColumn = count($strBookData); // To Get Column count
}
}
Upvotes: -1
Reputation: 9625
try this
$f = fopen("your_text_file.txt", "r");
while(!feof($f)) {
$data = explode(" ", fgets($f));
$date = $data[0];
$avgprd = $data[1];
$level1 = $data[2];
$level2 = $data[3];
$level3 = $data[4];
$level4 = $data[5];
$level5 = $data[6];
$level6 = $data[7];
$level7 = $data[8];
$level8 = $data[9];
$level9 = $data[10];
$level10 = $data[11];
$level11 = $data[12];
mysql_query("INSERT INTO `your_table_name` (date, avgprd, level1, level2, level3, level4, level5, level6, level7, level8, level9, level10, level11)
VALUES ('$date', '$avgprd', '$level1', '$level2', '$level3', '$level4', '$level5', '$level6', '$level7', '$level8', '$level9', '$level10', '$level11')") or die(mysql_error());
}
fclose($f);
Upvotes: 3
Reputation: 58
Use LOAD DATA INFILE in Mysql or php code as example:
$f = fopen("yourfile.txt", "r");
while(!feof($f)) {
$data = explode(" ", fgets($f));
mysql_query("INSERT INTO some_table (some_data0, some_data1) values (" . $data[0] . ", " . $data[1] . ")");
}
fclose($f);
Upvotes: 0
Reputation: 817
Look at LOAD DATA INFILE in Mysql. http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Upvotes: 0