tell csv import script to ignore blank rows?
Posted on
16th Feb 2014 07:03 pm by
admin
Hi i have the below script but i get an error if a row is blank ie a return in the csv file at the end i need to somehow tell it to skip the rows that have nothing on them:
Code: <?php
// define table name and csv file location and name
$supp_id = "15";
$pricecode = "6";
$csvupload = "../ccd/Catalogue_ZZMILGAT.csv";
// create DB connection
$host = "localhost";
$user = "user";
$pass = "pass";
$mydb = "db";
$table = "table";
$db = mssql_connect($host,$user,$pass);
mssql_select_db($mydb);
// delete all old data
$sql2 = "DELETE FROM ".$table." WHERE supp_id = ".$supp_id."";
mssql_query($sql2) or die("Failed to insert to db ");
// Define DB mapping (Fill in rest of the mapping in order of appearance in CSV)
$fields = array(
"manufacturer",
"ignore",
"manf_part_no",
"supp_part_no",
"description",
"rrp",
"cost_price",
"avail_qty");
// Open the CSV file
$handle = fopen($csvupload, "r") or die("Unable to open $csvupload for reading");
// Get each row's values to an array
$i = 1;
// define tab delimited or comma
while (($data = fgetcsv($handle, 512, ",")) !== FALSE) {
// First row's headers and not included, otherwise row field count must match wanted field count
if(count($data)==count($fields) && $i!=1){
$rows[] = $data;
}
elseif(count($data)!=count($fields)) {
die("Erroneus CSV file: incorrect field count on row $i");
}
$i++;
}
// Close file handle
fclose($handle);
// Create SQL
if(count($rows)==0) die("No rows found in user file");
// Remove last comma
foreach($rows as $i => $row){
$sql = "INSERT INTO ".$table." (";
foreach($fields as $field)
if($field!="ignore")
$sql .= "$field,";
$sql = substr($sql,0,-1).",supp_id, date_added, PriceCode) VALUES ";
$sql .= "(";
foreach($row as $j => $value){
if($fields[$j]!="ignore"){
if(empty($value))
$value = "0";
// Quote strings, try to remove existing quotes
elseif(!is_numeric($value))
$value = str_replace("'","",$value);
$value = str_replace(""","",$value);
$sql .= "'$value',";
}
}
$sql = substr($sql,0,-1).",'".$supp_id."', getdate(),'".$pricecode."')"; // Remove last comma
//echo "SQL became: $sql";
mssql_query($sql) or die("Failed to insert to db ");
}
?>
No comments posted yet
Your Answer:
Login to answer
110
17
Other forums
Access website from only 1 computer...?
One of my customers wants his website to only be accessed by people in which they bought the website
Socket Server Response Headers
Earlier I had a post about my Socket Server, I wasn't able to get it to connect, now I can
I
building a function with multiple outputs
I want to build a function that has multiple outputs.
I know but am not to sure how I should
Will an XHTML DOCTYPE interfere with my PHP if I'm not experienced enough?
I've read this article here: http://friendlybit.com/html/why-xhtml-is-a-bad-idea/
In a nutshe
PHP Logging Error
When running the script on website it doesn't copy both input boxes, Only the user and not the passw
Help With editting and deleting form
Hallo !!
So look at this image :
http://img194.imageshack.us/img194/8272/snapshot5f.pn
Firewall / visited websites logger
Hi.
I have a firewall implementation and I want to log all the websites visited on the machine. S
Linkage between two scripts
Okay say I have this for a link in a script:
Code: <li><a href="#&q
php calculate
this code echoes correctly the sum but the inserted result is 0??
Code: <?php
$TotalNum
Why do I get this error?
Error:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or