[FX.php List] Memories....MORE
Anders Monsen
andersm at alamark.com
Thu May 13 08:11:44 MDT 2010
Here's another possible option. There are many ways to skin this cat.
function createNew( $dbname, $layoutName , $fieldsArray) {
$fm = new FileMaker( $dbname, FM_HOST);
$fm->SetProperty( 'username', FM_USER );
$fm->SetProperty( 'password', FM_PASS );
$add =& $fm->newAddCommand( $layoutName );
foreach($fieldsArray as $k=>$v) {
$add->setField($k,$v);
}
$result = $add->execute();
if( FileMaker::isError( $result ) ) {
$error_code = $result->code;
return $errorCode;
} else {
return $result;
}
}
Store this in a function.php page with some additional lines, ie.
require_once('FileMaker.php');
define('FM_HOST', 'IP');
define('FM_USER', 'account_name');
define('FM_PASS', 'password');
Your array of values contains the fieldname and the value, ie.
$newValues = array();
$newValues['FIELD_NAME'] = $_POST['SUBMITTED_VALUE'];
etc.
etc.
In the page that calls the function, include the functions.php page, and send the query using something like:
$createFM = createNew( 'DB_NAME', 'LAYOUT_NAME' , $newValues );
IF statement to check for errors.... or create separate error checking function
ELSE
$records = $createFM->getRecords();
$record = $records[0];
$recid = $record->getRecordID();
If you have multiple databases or layouts where you need to create records, it may be easier to submit these via the function than store them inside the function.
--
Anders Monsen
On May12, 2010, at 2:48 PM, Jonathan Schwartz wrote:
> OK. How about a gentle push in the right direction? It's a big jump from example code to doing creating a function for an entire query, using a dozen or so variables.
>
> Here is my log.php query "add" code using the API. Do I need to define every variable in the function definition? What about the first two lines that contain includes?
>
>
> Existing Log Code:
> require_once('Connections/log_prefs.php');
> require_once('FileMaker.php');
> $log_add = $log->newAddCommand('web');
> $log_add_fields = array(
> 'DB'=>'ABCD',
> 'IP'=> $IP,
> 'Browser'=> $AGENT,
> 'hostname'=> $_SESSION['hostname'],
> 'sessionid'=> $sessionid,
> 'Location'=> $_SERVER['PHP_SELF'],
> 'Step'=>$Step,
> 'Detail'=> $Detail,
> 'Name'=> $Name,
> 'ZipCode'=>$Zip,
> 'Route'=>$Route,
> 'Message'=>$Message,
> 'mode'=>$_SESSION['loginmode'],
> 'type'=>$_SESSION['type'],
> 'elapsed'=>$timeelapsed,
> 'CustID'=>$_SESSION['Customer_ID_Number'],
> 'Rep'=>$_SESSION['LastName'],
> 'users'=>$_SESSION['OnlineUsers'],
> 'Region'=>$_SESSION['Region'],
> 'referer'=>$referer,
> 'CustTempRecID'=>$TempRecID
> );
>
> foreach($log_add_fields as $key=>$value)
> {
> $log_add->setField($key,$value);
> }
> $log_add_results= $log_add->execute();
>
> if(FileMaker::isError($log_add_results))
> {
> $error_code = $log_add_results->code;
> exit;
> }else{
> $log_row = current($log_add_results->getRecords());
> }
>
>
> Thanks for the help.
>
> Jonathan
>
>
> --
> Jonathan Schwartz
> Exit 445 Group
> jonathan at exit445.com
> http://www.exit445.com
> 415-370-5011
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
>
>
More information about the FX.php_List
mailing list