Good Morning,
I wrote a small import function for a website of mine and I know there has to be a better way to handle what I'm doing. I'm hoping someone can take my code and make it run a hair faster as it seems to be pretty slow right now. Think anyone can speed this up? What am I doing wrong? or am I doing it right?
The below function takes a file(csv) reads the content and imports it into the database, how can I optimize this to run faster and cleaner?
Code: function importFile($user_id, $file, $file_id)
{
if(!file_exists($file))
{
return false;
}
$handle = fopen($file, "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
if(empty($contents))
{
return false;
}
// grab the items
$items = explode("n", $contents);
// if there are items import them.
if(is_array($items))
{
foreach($items as $key=>$val)
{
$save_val = $val;
$val = explode(",", trim($val));
if(!is_array($val) || sizeOf($val)<=1)
{
$val = explode("t", trim($save_val));
if(!is_array($val))
{
return false;
}
}
// part number
// alt part number
// condition
// qty
// description
foreach($val as $inner_key=>$inner_val)
{
$inner_val = str_replace("r", "", $inner_val);
$val[$inner_key] = str_replace(""", "", $val[$inner_key]);
$val[$inner_key] = trim(mysql_real_escape_string($val[$inner_key]));
}
if(!empty($val[0]) && strtolower($val[0]) != "part number")
{
$val[0] = $this->fixPartNumber($val[0]);
$val[1] = $this->fixPartNumber($val[1]);
// check to see if we need to insert or update
$select_sql = "SELECT inventory_id FROM ".TABLE_PREFIX."inventory WHERE inventory_part_number='{$val[0]}' AND user_id={$user_id}";
$result = $this->db->query($select_sql);
//echo mysql_error()."<BR><BR>";
if(!$result)
{
echo "fail";
exit;
}
if(mysql_num_rows($result) == 0)
{
// no record, so insert
$insert_sql = "INSERT INTO ".TABLE_PREFIX."inventory (inventory_part_number, inventory_alt_part_number, inventory_condition_code,
inventory_quantity, inventory_description, last_update, user_id) VALUES (
'{$val[0]}', '{$val[1]}', '{$val[2]}', '{$val[3]}', '{$val[4]}', NOW(), '{$user_id}')";
//echo $insert_sql."<BR><BR>";
$result = $this->db->query($insert_sql);
echo "Inserted: ".$val[0]."<br />";
}
else
{
$update_sql = "UPDATE ".TABLE_PREFIX."inventory SET inventory_part_number='{$val[0]}', inventory_alt_part_number='{$val[1]}',
inventory_condition_code='{$val[2]}', inventory_quantity='{$val[3]}', inventory_description='{$val[4]}', last_update = NOW()
WHERE user_id = {$user_id} AND inventory_part_number = '{$val[0]}'";
//echo $update_sql."<BR><BR>";
$result = $this->db->query($update_sql);
echo "Updated: ".$val[0]."<br />";
}
}
}
$update_sql = "UPDATE ".TABLE_PREFIX."file_upload SET file_flag = 1 WHERE file_id=".$file_id." AND user_id=".$user_id;
$result = $this->db->query($update_sql);
return true;
}
}
Sql and php order list script problems
Hi im having a few problems with trying to get the coding right on a orders list ive done (or trying to do) for a custom shopping cart im making... For some reason it comes up with all the orders in
PHP XML extraction text
I would like to extract an xml text and have that text directly echo(print) out on my web page. Here's the xml i want to extract:http://dblp.uni-trier.de/search/author?xauthor=SchekWhat I
php multiple action on submit
I have a form which says:<form enctype='multipart/form-data' method='post' action='process.php' target='_blank'>I need to call process.php on submit or on clicking submit button. Now
Limiting uploaded file type
Hi. First post here I am working on a simple upload script, and I need it to limit the allowed file type that is uploaded to only .mpr files. .mpr files are not a MIME file type so I do not know how
Multiple arrays inside data
Hi,Simple question. I have a column called "array" in my database, and inserted into each field is the following imploded array:Code: mctriangle,570.65,355.1,1,1,0It is an instance of an
Most basic form question ever?
Hello,I want to use this snippet to make sure the fields in a form are ok before processing it.Code: <FORM method="post">To:<input type="text"
show random images
hey guyscan someone please suggest a way in which the following code can be edited so it only picks up .jpg files, and so it only shows 20 of them which where found, in a randomized orderCode:
filesize problem
i use ubuntu 9.10 and i have mountet a folder from an windows/mount/FOLDER/mount/FOLDER/FILE.txti try to find out the size of folder : FILE.txtPHP Warning: filesize(): stat failed for
Best way to cross matching large datasets
Hi,Im running a script where am I cross matching about 200 000 data sets with each other. Each data set consists of 8 parameters and I want to count all datasets which have similar or the same
Simple email form - Newbie
Hello all,First time poster!I've been asked to create a simple HTML form that submits and sends the information to a particular email.The client is using PHP. Since I have a .NET and C# background,