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;
}
}
PECL uploadprogress for php5.2
Hey, I just installed PHP5 via .htaccess on my 1and1 Shared Hosting Account.How would I exactly install the "PECL uploadprogress"?http://pecl.php.net/package/uploadprogress---There are
Generate multilayered array from string.
ok so i have a string that looks like this:Code: blog:edit_all,delete_all|users:edit_all,delete_all|settingsand i want to make a code that can take that string and put it in a multi-layered array like
Code Review - SQL and Insertion Attacks (Warning: Not for Newbs)
Hey guys,Its been a while, I know. Use to love coming here to answer peoples questions, but work and school have been keeping me too busy but do anything but lurk. I usually write all my code/apps by
Batch Related Pricing
Hi, I need some clarity on the batch related pricing
Stumped by Third Day of Month problem
I am trying to build an algorithm that will essentially do this: Code: [Select]$this_month = October$third_sunday = CalculateThirdSunday(October)if ( ( TodaysDate before $third_sunday ) | ( TodaysDate
[RESOLVED] Socket/Port remains open after app crashes
I'm having this problem with a networked app in vb.net.If the program exits normally the port closes fine, however, if it crashes sometimes it remains open and I am unable to close it. The next time
how to insert value
I am having file bookissueadd.php..... in which i am having tag <td height="21">Issue Charges</td> <td><div
switch not getting value
what am i doing wrong?i want to populate the country list according to the categoryi want to switch in case CategoryID=1 and CatID2=2 in the country_list tablethen call on "alpha" to
Formatting echo from database
So I have a database that stores First and last names, then echos them back to a website, as of now the entire first and last name echos back (John Smith) I want the last name to just display the
Why doesn't this work? (SSH2)
This is my script:Code: <?php$connection = ssh2_connect('213.251.167.109', 22);ssh2_auth_password($connection, 'root', 'MGdgfskc');$stream = ssh2_exec($connection, 'useradd -d /home/users/test