[FX.php List] FMNew through portal

Chris Hansen chris at iViking.org
Thu Jul 7 14:53:39 MDT 2005


Good question.  This may actually come in handy for many on the list.  
I believe this data IS in the documentation, but I'm not sure.

Basically, adding or editing records in a portal requires a special 
syntax (in your case this wouldn't be an issue except for the FM bug.)  
To add a record to a portal append a '.0' (period - zero) to the field 
name, like this:

$fx->AddDBParam('LineItem::ProductName.0', 'Newsprint 11 x 17');
$fx->AddDBParam('LineItem::Pages.0', '4');
$fx->AddDBParam('ShipMethod', 'Ground');

Note that the trailing zero needs to be appended to the name of each 
field in the portal.  Also, only one record can be added per query to 
the portal.  (This is all related to the way that things are handled by 
FileMaker internally.)

An edit of a field in a portal is similar.  When editing, a '.n' is 
appended to the field name, where 'n' is a number representing the 
portal row that you are editing.  In FileMaker 5/6, 'n' is simply the 
number of the row of the portal that you want to edit -- so to edit the 
third row in the portal, append a '.3'.  For FileMaker 7, on the other 
hand, the recordID is used (use a calc field to get this value for a 
portal row.)  That means that if you were connecting to an FM7SA 
machine, and wanted to edit a record in a portal whose recordID was 
'12', you would append a '.12' to the field name.

I hope that makes some sort of sense.  I'll see if I can't streamline 
this in the next release of FX.php =)


--Chris Hansen
   creator of FX.php
   "The best way from FileMaker to the Web."

On Jul 7, 2005, at 1:23 PM, Adam Gamble wrote:

>  Chris,
>  I had this message back in june.
> Here is the problems i'm having I have a layout that contains fields
> from several different tables. I want to create a record in this
> table that also puts values in the fields that have a relationship to
> that table. Even though the data returned back from fx.php shows the
> field LineItem::product when i try to place data in the field it says
> that the field isn't there.
> So the question is it possible to create a new record and it also
> create a new record on the tables that have a relationship to the
> original one that is contained in the layout?
> I changed the fields to be inside a portal but i'm still get error 102 
> (Field Missing)
> here is my php code:
> $fx->AddDBParam('LineItem::ProductName', 'Newsprint 11 x 17');
> $fx->AddDBParam('LineItem::Quantity','200');
> $fx->AddDBParam('LineItem::Pages', '4');
> $fx->AddDBParam('ShipMethod', 'Ground');
> $ReturnedData = $fx->FMNew();
> It's the LineItem:: ones that mess it up, if I only do the ShipMethod 
> field it works
> this is confusing to me. Is :: the way you insert a record through a 
> portal?
> Thanks for any help
> Adam
> _______________________________________________
> 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