I have a form connecting to a db. I'veparsed the form
data into arrays and seperated new entries from edits
to existing entries because of the class file and db
structure. This as written, however,  will only work a
for a single record (multiple field) edit. I've stayed
up too long and am beginning to glaze over when I look
at it. Any suggestions? Comments on functionality as
well as elegance are appreciated.

Thanks in advance,
Randall Gremillion





include_once($HTTP_SERVER_VARS['DOCUMENT_ROOT'] .
"/FX/FX.php");
        $serverIP = "127.0.0.1";
        $vendorID = $_GET["vendorID"];
        $repID = $_GET["repID"];
        if ($_POST) {
                $updateEntries = array();       //stores existing db
entries
                $newEntries = array();          //stores new db
entriesbottom.php
                $ord = -1;
                $recNum = 0;
                $newOrd = 0;
                foreach ($_POST as $key => $value) {
                if ($value != "") {
                                $lastPartPos  = strrchr($key, '_');
                                $lastPart = substr($lastPartPos, 1);
                                if (preg_match("/[0-9]+/" , $lastPart)) {  //if
it's an existing update
                                        $lastpartnum = strrpos($key, '_');
                                        $firstnum = substr($key, 0, $lastpartnum);
                                        $first = str_replace('_', '.', $firstnum); 
//restore periods to field name and strip off record
ID at end
                                        if ($lastPart != $recNum) {
                                                $recNum = $lastPart;
                                                $ord++;
                                        }
                                        $updateEntries[$ord][] = array($recNum, $first,
$value); //populate nested arrays of each entry
                                } else {
                                        $second = str_replace('_', '.', $key);  
//create
array of new entry
                                        $newEntries[$newOrd] = array($second, $value); 
//populate nested array of new entry
                                        $newOrd++;
                                }
                        }
                }
                //add to update list
                if ($newOrd > 0) {
                        $Adder = new FX($serverIP);
                        $Adder->SetDBData("Account_Reports.fp5", "All");
                        $Adder->AddDBParam("vendorID.calc.txt",
"$vendorID");
                        for ($k=0; $k < count($newEntries); $k++) {
                                $Adder->AddDBParam($newEntries[$k][0],
$newEntries[$k][1]);
                        }
                        $Added = $Adder->FMNew();
                }
        }
                if (count($updateEntries)>0) {
                        for ($i=0; $i<count($updateEntries); $i++) {
                                $b = "Add" . $i;
                                $c = "Updated" . $i;
                                $$b = new FX($serverIP);
                                echo "$b = new FX($serverIP);";
                                $$b->SetDBData("Account_Reports.fp5", "All");
                        $boo = $updateEntries[$i][0][0];
                                $$b->AddDBParam('-recid', $boo);
                                for ($j=0; $j<count($updateEntries[$i]); $j++) {
                                        $$b->AddDBParam($updateEntries[$i][$j][1],
$updateEntries[$i][$j][2]);
                                }
                                $$c = $$b->FMEdit();
                        }
                }

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to