Jump to content

import csv into mysql table and log record count fopen()


jrobles

Recommended Posts

I have a script that imports the data from a csv file. before I insert into the table I want to log the import i.e. row count, import date, file name...etc. I got most of the the functions working, I am just having trouble getting the record count of the csv file.

 

$link = connectToDB();

if(isset($_POST['submit']))
{$filename=$_POST['filename'];
$handle = fopen("$filename", "r");

//LOG THE BATCH IMPORT
$user=$_SESSION['SESS_MEMBER_ID'];
$log_query="INSERT INTO batchImportLog(ImportDate,FileLocation,RecordCount, ImUserID ) VALUES(NOW(),'xxx','xxx','$user')";
mysql_query($log_query) or die(mysql_error());

//GRAB LAST ID FROM LOG TABLE
$batchid=mysql_insert_id();

//INSERT EACH ROW INTO THE TABLE
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{$import="INSERT INTO inventoryTable(campcode,imbatchid, importdate,fname, mname, lname, phone, address1, address2, city, state, zip) VALUES('$data[0]','$batchid',NOW(),'$data[1]','$data[2]','$data[3]', '$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
mysql_query($import) or die(mysql_error());}
fclose($handle);
print "Import done";}
else
{print "<form action='import.php' method='post'>";
print "Type file name to import:<br>";
print "<input type='text' name='filename' size='20'><br>";
print "<input type='submit' name='submit' value='submit'></form>";}

$link = connectToDB();

if(isset($_POST['submit'])){

$filename=$_POST['filename'];
$handle = fopen("$filename", "r");

//GRAB LAST ID FROM LOG TABLE
$batchid=mysql_insert_id();

//INSERT EACH ROW INTO THE TABLE
$cnt = 1;
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE){

$import="INSERT INTO inventoryTable(campcode,imbatchid, importdate,fname, mname, lname, phone, address1, address2, city, state, zip) VALUES('$data[0]','$batchid',NOW(),'$data[1]','$data[2]','$data[3]', '$data[4]','$data[5]','$data[6]','$data[7]','$data[8]','$data[9]')";
mysql_query($import) or die(mysql_error());
++$cnt;
}
fclose($handle);
print "Import done";

//LOG THE BATCH IMPORT
$user=$_SESSION['SESS_MEMBER_ID'];
$log_query="INSERT INTO batchImportLog(ImportDate,FileLocation,RecordCount, ImUserID ) VALUES(NOW(),'xxx','{$cnt}','{$user}')";
mysql_query($log_query) or die(mysql_error());

print '<br>All done!';
}else{

print "<form action='import.php' method='post'>";
print "Type file name to import:<br>";
print "<input type='text' name='filename' size='20'><br>";
print "<input type='submit' name='submit' value='submit'></form>";
}

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.