[FX.php List] Stupid Find Question

DC dan.cynosure at dbmscan.com
Mon Dec 20 13:20:24 MST 2004


Hi Milos,

Thanks for catching that one! I apologize for misleading the list with 
my untested suppositions! Further comments and test reports inline below...

Milos Vukotic wrote:
> If this is true:
> 
>  > Chris Hansen  wrote:
>  > A tip on doing finds with FX.php: finds via FX work the same way that 
> they do in FileMaker.  So characters like '@' and '*' which are
>  > wildcards in FM, are also wildcards when you search via FX.php.  When 
> doing a login, an excellent options is to add quotes around your
>  > parameter like this (using a modified version of the example below):
>  >
>  > $query->AddDBParam('email_password', '"' . $user . $pass . '"');
> 
> I would rather say instead of
> 
>  > resulting string sent to filemaker field find request:
>  > ="100"
> 
> that resulting string sent to filemaker field find request:
> =100
> 
> Correct me if I am wrong, or I am missing something?

Yes, on the correction you offer to this syntax point, you are right; my 
placing of double-quotes was wrong. FX does not in fact place 
double-quotes around a search term.

However, I tested the code below to determine if your guess would pan 
out... and ...this code will not find the spurious records as you opine 
it might:

 >> Milos Vukotic wrote:
 >>
 >>> I would guess that you'll get for $num_ser = 1
 >>> all this records:
 >>> 1,11,12,13..,101,...,1000,...,10000,...
 >>>
 >>> Cheers,
 >>> Milos Vukotic
 >>>
 >>> DC wrote:
 >>>
 >>>> I've gotten this code to work without a problem:
 >>>> foreach ($FK_array as $num_ser)
 >>>> {
 >>>>     $request->AddDBParam ('num_serial', $num_ser, 'eq');
 >>>> }
 >>>>
 >>>> // tell FMP/FX to do an OR search
 >>>> $request-> AddDBParam ('-lop', 'or');
 >>>> // call the find action
 >>>> $result_array = $request-> FMFind();
 >>>>

For example, a record with num_serial 250 is not found in a search for 
record with num_serial 25.

Hope that clears the issue.

Best,
dan

> Cheers,
> Milos Vukotic
> 
> 
> DC wrote:
> 
>> The way I understand it (and what I have seen on the web database by 
>> doing a Find Again and looking at what is sitting in the field) the 
>> 'eq' parameter wraps the data sent to the find request like so:
>>
>> data sent to FX:
>> $request->AddDBParam ('num_serial', '100', 'eq');
>>
>> resulting string sent to filemaker field find request:
>> ="100"
>>
>> When you do a search with the equals sign, you don't get 1000 or 
>> 10000, you just get 100.
>>
>> Correct me if your tests show anything different.
>>
>> Not sure if you know this, but a neat trick to get the even stricter 
>> ==  find request to work is to prepend the equals sign to the search 
>> term and use the 'eq' param.
>>
>> $strict_eq_search = '=' . '100';
>> $request->AddDBParam ('num_serial', $strict_eq_search, 'eq');
>>
>> This allows you to do what filemaker calls 'Field content match' as 
>> opposed to the 'eq' param which only does a (so-called) 'Exact match'.
>>
>> I'm using an older FX version, has field content match been added as a 
>> paramter option to a new version?
>>
>> Best,
>> dan
>>
>> Milos Vukotic wrote:
>>
>>> I would guess that you'll get for $num_ser = 1
>>> all this records:
>>> 1,11,12,13..,101,...,1000,...,10000,...
>>>
>>> Cheers,
>>> Milos Vukotic
>>>
>>> DC wrote:
>>>
>>>> I've gotten this code to work without a problem:
>>>> foreach ($FK_array as $num_ser)
>>>> {
>>>>     $request->AddDBParam ('num_serial', $num_ser, 'eq');
>>>> }
>>>>
>>>> // tell FMP/FX to do an OR search
>>>> $request-> AddDBParam ('-lop', 'or');
>>>> // call the find action
>>>> $result_array = $request-> FMFind();
>>>>
>>>> Another thing to check is make sure that you're talking to the right 
>>>> layout (one that has the fields you wish to search on). I see 401 
>>>> errors all the time when I make a typo in the layout name.
>>>>
>>>> DC
>>>>
>>>> Marisa Smith wrote:
>>>>
>>>>> OK, I KNOW I should know how to do this, but I can't figure it out
>>>>>
>>>>> I need to find all records whose unitid=15  OR  whose
>>>>> unitid=20
>>>>>
>>>>> In Filemaker client, I can do this with a 'new request', but I 
>>>>> don't know
>>>>> the equivalent in XML.  I tried this:
>>>>>
>>>>>     $AAHRPPDocQuery->AddDBParam("unitid","15");
>>>>>     $AAHRPPDocQuery->AddDBParam("-lop","or");
>>>>>     $AAHRPPDocQuery->AddDBParam("unitid","20");
>>>>>
>>>>> But I end up with an error 401.
>>>>>
>>>>> What am I missing here?  Or am I trying to do the impossible?
>>>>>
>>>>> Thanks!
>>>>> Marisa
>>>>> ---------------------------------------------------------------------
>>>>> Marisa Smith, President
>>>>> DataSmith Consulting, LLC
>>>>> 667 Kuehnle Street
>>>>> Ann Arbor, MI 48103
>>>>> Phone & Fax: (734) 369-3001
>>>>> Cell: (734) 834-2638
>>>>> http://www.datasmithconsulting.net
>>>>> Filemaker Solutions Alliance Associate Member
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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