I am trying to Upload a csv file then split it up into an an array and build a query to insert it into a mysql table I have succeeded in getting this to work with one exception when I come across a field seperated by commas and enclosed by double quotes if that field also contains double quotes inside of it it throws off my column count I need to be able to consider something like - ,"sometext"some more text"additional text", as one field or value here is what i have so far

$row = 1; 
$handle = fopen($uploadFile, "r"); 

while ( ($data = fgetcsv($handle, 10000, ",")) != FALSE ) { 
$num = count($data); 
if($row == 1){
$fields = " `id` , ";
for($i=0; $i<$num; $i++){
$fields .= "`" . addslashes(trim($data[$i])) . "` , ";
}
$fields .= "`group` , `user` , "; 
$f = substr($fields, 0, -1);
$f = substr($f, 0, -1);
$row++;
}else{
$values = " '' , "; 
for($i=0; $i<$num; $i++){ 
$values .= "'" . addslashes(trim($data[$i])) . "' , ";
}
$values .= "'personal' , '" . $_SESSION['user'] . "' , ";

$v = substr($values, 0, -1);
$v = substr($v, 0, -1); 
$sql = "INSERT INTO `addressbook` ( $f ) VALUES ( $v )";
mysql_query($sql) or die(print "<center><font size='2' face='verdana' color='#5E6B79'><b>Upload complete some entries may not have been loaded successfully!</b><br><br><a href='addressbook.php' class='light'>Back to Address Book</a></font></center></td></tr></table>");
$values = ''; 
$row++;
} 
}
fclose ($handle);

can anyone help? thanx

Member Avatar for LastMitch

@AllenGarner

I am trying to Upload a csv file then split it up into an an array and build a query to insert it into a mysql table I have succeeded in getting this to work with one exception when I come across a field seperated by commas and enclosed by double quotes if that field also contains double quotes inside of it it throws off my column count I need to be able to consider something like - ,"sometext"some more text"additional text", as one field or value here is what i have so far

I know it's 7 years too late.

You are asking for this:

"sometext"some more text"additional text"

I don't think that will work.

It should look like this:

$csv_content = '"sometext","some more text","additional text"';

Here is a link about it:

http://nurazije.blogspot.com/2006/10/making-csv-comma-separated-values-in_13.html

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.