[FX.php List] Getting "-recid" for 1 record
AC
ac at pottnerconsulting.ca
Tue Jul 18 19:18:37 MDT 2006
In FileMaker I have a table of users and a Login table with only 1
record in it. FX writes the user supplied login & password to the
login tables record, a calc field returns the ID of the matching user
record (if any). I'm doing it this way because I couldn't figure out
how to check for a case sensitive password in the user table and I
don't want to allow write access to the user table.
To edit the Login record I needed its recid and I know I'm only
returned 1 record so I figured there should be a non looping way of
getting that number.
Gtt's code did exactly that;
$ResultAll=$Search->FMFindAny();
list($TheRecID, $TheModID)=explode('.', key($ResultAll['data']));
I'm just getting started with PHP & FX.
Unfortunately the code you wrote is way over my head, hopefully it'll
make sense one of these days.
Thanks for everyone's help.
On Jul 18, 2006, at 8:27 PM, DC wrote:
> sorry...
>
> i didn't take a really close look at what you had... i think gtt's
> answer will fix your problem...
>
> however, i looked at your original question and it seems that if you
> get more than one record returned in the found set you may want an
> array of recids and their modcounts? is that the case?
>
> here's how you could do that (I took your challenge that you wanted to
> avoid repeat loops so this makes use of PHP's array functions
> instead):
>
> <?php
> // show how to get an assoc array from FX.php data
> // with rec id as key and mod count as value
> // dummy data similar to FX.php array
> $ResultAll['data'] = array('1000.11'=>1,'2000.22'=>2);
>
> // get the keys which are the in the format recid.modcount
> $keys_array = array_keys($ResultAll['data']);
> // map array to custom function
> // generate dots for explode
> $dots_array = array_fill(0,count($keys_array),'.');
> $modid_recid_array = (
> array_map('explode_to_assoc',
> $dots_array,
> $keys_array)
> );
> print_r($modid_recid_array);
>
> // ---------------------------------------
> // assumes 2 items separated by $str incoming
> // returns assoc array with item 1 as key
> // and item 2 as value
> function explode_to_assoc ($str, $arr) {
> list($i,$j) = explode($str,$arr);
> return array($i=>$j);
> }
> ?>
>
> archived at:
>
> http://dbmscan.com/snippets/
>
> in the FX helpers section.
>
>
> enjoy!
> dan
>
> On Jul 18, 2006, at 5:13 PM, AC wrote:
>
>> This is the command I'm using:
>> $ResultAll=$Search->FMFindAny();
>> list($TheRecID, $TheModID)=explode('.', ($ResultAll['data']));
>> echo('RecID=' . $TheRecID);
>>
>> The result I get is;
>> RecID=Array
>>
>>
>>
>> On Jul 18, 2006, at 4:05 PM, DC wrote:
>>
>>> take out $key
>>>
>>> AC had written:
>>>> This works for me;
>>>> $ResultAll=$Search->FMFindAny();
>>>> list($key)=each($ResultAll['data']);
>>>> $TheRecID=strtok($key, ".");
>>>> I can't get this to work, did I miss type it or does it require the
>>>> for each loop?
>>>> $ResultAll=$Search->FMFindAny();
>>>> list($TheRecID, $TheModID)=explode('.', $key($ResultAll['data']));
>>>> On Jul 18, 2006, at 3:09 PM, Gjermund Gusland Thorsen wrote:
>>>>> This is how I do it
>>>>> ---
>>>>> list( $recid, $modid ) = explode( '.', $key( $r['data'] ) );
>>>>> ---
>>>>>
>>>>> ggt667
>>>>>
>>>>> On 7/18/06, AC <ac at pottnerconsulting.ca> wrote:
>>>>>
>>>>>> > If you just want the key I believe this will work, but I
>>>>>> haven't tried:
>>>>>> > list($key) = each($ResultAll['data']);
>>>>>> > $recid = strtok($key, ".");
>>>>>>
>>>>>> Yes it does work, thanks.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Jul 18, 2006, at 1:52 PM, Andrew Denman wrote:
>>>>>>
>>>>>> > Don't remember where I found this, but it's useful if you only
>>>>>> have one
>>>>>> > record returned. The first line will give you the key and data
>>>>>> of the
>>>>>> > first
>>>>>> > set of data in the $ResultAll['data'] array (and according to
>>>>>> the php
>>>>>> > docs,
>>>>>> > advance the pointer to the next set of data). Second and third
>>>>>> lines
>>>>>> > will
>>>>>> > break out the recid and modid.
>>>>>> >
>>>>>> > list($key, $data) = each($ResultAll['data']);
>>>>>> > $recid = strtok($key, ".");
>>>>>> > $modid = strtok(".");
>>>>>> > $Field_Data = $data['Field_Name'][0];
>>>>>> >
>>>>>> > If you just want the key I believe this will work, but I
>>>>>> haven't tried:
>>>>>> > list($key) = each($ResultAll['data']);
>>>>>> > $recid = strtok($key, ".");
>>>>>> > $modid = strtok(".");
>>>>>> >
>>>>>> > Andrew Denman
>>>>>> >
>>>>>> > -----Original Message-----
>>>>>> > From: fx.php_list-bounces at mail.iviking.org
>>>>>> > [mailto:fx.php_list-bounces at mail.iviking.org] On Behalf Of AC
>>>>>> > Sent: Tuesday, July 18, 2006 12:30 PM
>>>>>> > To: fx.php_list at mail.iviking.org
>>>>>> > Subject: [FX.php List] Getting "-recid" for 1 record
>>>>>> >
>>>>>> > If I know that only 1 record is returned then I can use the
>>>>>> following
>>>>>> > to get data from that record;
>>>>>> >
>>>>>> > $ResultAll=$Search->FMEdit();
>>>>>> > $ResultOne=current($ResultAll['data']);
>>>>>> > echo('ID=' . $ResultOne['ID'][0]);
>>>>>> >
>>>>>> >
>>>>>> >
>>>>>> > How would I do the same thing to get the "-recid" without doing
>>>>>> the
>>>>>> > following loop thing?
>>>>>> >
>>>>>> > foreach($ResultAll['data'] as $key=>$ResultOne){
>>>>>> > $TheRecIDModNum=explode('.',$key);
>>>>>> > $TheRecID=$TheRecIDModNum[0];
>>>>>> > }
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > FX.php_List mailing list
>>>>>> > FX.php_List at mail.iviking.org
>>>>>> > http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>> >
>>>>>> > _______________________________________________
>>>>>> > FX.php_List mailing list
>>>>>> > FX.php_List at mail.iviking.org
>>>>>> > http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>> >
>>>>>> >
>>>>>>
>>>>>> _______________________________________________
>>>>>> FX.php_List mailing list
>>>>>> FX.php_List at mail.iviking.org
>>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>>
>>>>> _______________________________________________
>>>>> FX.php_List mailing list
>>>>> FX.php_List at mail.iviking.org
>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>
>>>>>
>>>> _______________________________________________
>>>> FX.php_List mailing list
>>>> FX.php_List at mail.iviking.org
>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>> _______________________________________________
>>> FX.php_List mailing list
>>> FX.php_List at mail.iviking.org
>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>
>>>
>>
>> _______________________________________________
>> FX.php_List mailing list
>> FX.php_List at mail.iviking.org
>> http://www.iviking.org/mailman/listinfo/fx.php_list
>
> _______________________________________________
> 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