Help Optimizing code
Posted on
16th Feb 2014 07:03 pm by
admin
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;
}
}
No comments posted yet
Your Answer:
Login to answer
248
28
Other forums
need help with mail()
hi i want to send an email with attaching pdf file using php. i have the following script but the pr
Create comparison matrix?
I want to create a comparison script for forum software and was wondering is there any tutorial or b
Backflush
I am looking for a report in SAP that would give me a list of all parts that are populated with a ba
Deleted Delivery but material wont return
We deleted a delivery but the material its still pending.
We made a reverse goods movemen
PHP XML extraction text
I would like to extract an xml text and have that text directly echo(print) out on my web page. Her
PHP error (line 38) my website
Hello everyone, I'm new on this
and I got a web site thats got a error not showing the photos on<
Trouble checking SESSION cookie
I am trying to use $_SESSION cookies to verify admin privileges .
I don't understand why this is
Problems with strings containing
Hey all,
I have encountered something strange in a script. I am trying to write an XML heade
upload only text files
hi guys i want to upload only text like like (pdf,note pad and ofiice files) so can any one please t
Do not allow posting of whitespace
Currently the script below works if the user does not type a name/message, but if i create a whitesp