Re: Add New Records Only!
| From: | Rahul Sitaram Johari | Date: | Fri, 23 Mar 2007 16:24:54 +0000 |
| Subject: | Re: Add New Records Only! | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-251193@lists.php.net to get a copy of this message | ||
Ave,
"Three: Insert everything and remove duplicates later."
Out of the suggested options, this option is sounding the most sane
attainable on my end. I don't have a complete grip on how to accomplish
this, but certainly sounds feasible. Let me look at ways to achieve this.
Thanks!
On 3/23/07 11:36 AM, "Mark" <markw@mohawksoft.com> wrote:
> 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²