Re: Add New Records Only!

From: Date: Fri, 23 Mar 2007 15:36:44 +0000
Subject: Re: Add New Records Only!
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-251183@lists.php.net to get a copy of this message
Rahul Sitaram Johari wrote: As far as I can see, there is probably only three ways to do this: One: Make sure your dbase system contains unique primary key capability, and use it to avoid duplicates. Two: query for the row, if it isn't there insert it. (You'll have to deal with concurrency with locking or something) Three: Insert everything and remove duplicates later. > Ave, > > Let me explain what I¹m trying to do. Unfortunately it¹s not a very simple > Add/Update transaction. > Basically I gather records from multiple mySQL tables and add them to a > DBF > (dbase) database. I wrote a code which was able to accomplish this > without any problems and the add_records goes very smooth. > > However, I have to modify this program now so that only ³New² records, > i.e., records that have not yet been transferred, are added into the DBF. > In other words, any records that are being added, which already exist in > the DBF, should not be added. > > If it were just adding records from one mySQL to another mySQL, I could > easily use INSERT IGNORE or the Unique Key fundamental ­ however, since > I¹m adding from multiple mySQL tables into DBF, I¹m not sure how to go > about doing this. > > Here¹s my code that takes records from multiple mySQL tables and adds them > to a DBF. > > // define the array with mySQL Table Names & Identifier > $tChoice = array( > "lodispo" => "VB", > "lodispo_osma" => "ATL", > "lodispo_osmh" => "HOU", > "lodispo_osmn" => "NSV", > "lodispo_osmp" => "PAA", > "lodispo_osmj" => "JAX", > "lodispo_osmt" => "TPA", > "lodispo_dmam" => "MET", > "lodispo_osmf" => "FTM", > "lodispo_hfglend" => "GLEND", > "lodispo_hfmesa" => "MESA", > "lodispo_hfphenx" => "PHENX", > ); > > > // open DBF in read-write mode > $db2 = dbase_open($theDBFfile, 2); > if (!$db2) { > echo "<BR><BR><STRONG>Fatal Error:</STRONG> Unable to open > database<BR><BR>"; > exit; > } > > else { > > // Let's Run Array Loops! > foreach ($tChoice as $tblQ => $bxQ) { > > // connect to mySQL tables one by one > mysql_select_db($database_imslead_transfer, > $imslead_transfer); $query_loDispo = "SELECT * FROM $tblQ"; > $loDispo = mysql_query($query_loDispo, $imslead_transfer) or > die(mysql_error()); > $row_loDispo = mysql_fetch_assoc($loDispo); > $totalRows_loDispo = mysql_num_rows($loDispo); > > // write mySql data to Dbf > do { > dbase_add_record($db2, array( > $row_loDispo['phone'], > $row_loDispo['comments'], > $row_loDispo['starttime'], > $row_loDispo['endtime'], > $row_loDispo['dispo'], > $row_loDispo['loanofficer'], > $row_loDispo['verifier'], > $bxQ)); > } while ($row_loDispo = mysql_fetch_assoc($loDispo)); > } > > dbase_close($db2); > } > > Any suggestions would be highly appreciated. > > Thanks, > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Rahul Sitaram Johari > CEO, Twenty Four Seventy Nine Inc. > > W: http://www.rahulsjohari.com > E: sleepwalker@rahulsjohari.com > > ³I morti non sono piu soli ... The dead are no longer lonely²

« previous php.general (#251183) next »