[FX.php List] Stupid Find Question
Greg Lane
glane at moyergroup.com
Tue Dec 21 15:32:57 MST 2004
Unless there is some undocumented syntax, I don't think there is a way
to make -lop work for multiple inputs for the same field. I tested the
following examples on Windows and Mac OS X versions of FMSA 7.0v3.
These each return one record with the corresponding CityID:
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C62&-find
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C70&-find
This returns two records, one with CityID=C62 and one with City=Nixa:
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C62&City=Nixa&-lop=or&-find
These return 401 errors (No records match the request):
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C62&CityID=C70&-lop=or&-find
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C62&-lop=or&CityID=C70&-find
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C&CityID=A&-lop=or&-find
These return all records where CityID begins with C:
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C&CityID=C&-lop=and&-find
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C&CityID=C&-lop=or&-find
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=C&CityID=&-lop=or&-find
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID=&CityID=C&-lop=or&-find
These return error -1 (Unknown error):
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID.0=C62&-lop=or&CityID.0=C70&-find
http://192.168.0.100/fmi/xml/fmresultset.xml?-db=City&-lay=City-
Web&CityID.1=C62&-lop=or&CityID.2=C70&-find
On Dec 21, 2004, at 8:55 AM, Chris Hansen wrote:
> Using '-lop' should work. Keep in mind that this sets the operator
> for the ENTIRE search. One of the limitations that FM built into cwp
> is that only one operator can be used per search. I'd suspect
> something else is going on. I'd like to look at the rest of the code.
>
> Also, there has been some talk of a search for '1' returning
> '10,1000,150' and so on. I'm not sure if this has already been
> mentioned, but keep in mind that this is only the case that you're
> using a text field to store numbers. If you search for '1' in a field
> defined as a number field, only records with '1' in that field (and
> nothing else) will be returned.
>
> HTH
>
> --Chris Hansen
> creator of FX.php
> "The best way from FileMaker to the Web."
> www.iViking.org
>
> On Dec 20, 2004, at 8:54 PM, Dale Bengston wrote:
>
>> So does anyone have a resolution to Marisa's original question of
>> "or" searches for two user inputs in the same field? Short of Steve's
>> back-end scripting conclusion?
>>
>> Dale
>> --
>> Dale Bengston | Streamline Studio, LLC |
>> dbengston at streamline-studio.com
>> Associate Member, FileMaker Solutions Alliance
>>
>> On Dec 20, 2004, at 4:15 PM, Michael Layne wrote:
>>
>>> I'm glad to have read this. I had a suggestion on dealing with '@',
>>> using PHP 'str_replace' function and when I saw Chris' solution [],
>>> I immediately tried it thinking I over-thought things, but it didn't
>>> work for me. I thought I was missing something.
>>>
>>> Thanks for clarification.
>>>
>>>
>>> On Dec 20, 2004, at 3:20 PM, DC wrote:
>>>
>>>> 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
>>>> _______________________________________________
>>>> FX.php_List mailing list
>>>> FX.php_List at mail.iviking.org
>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>
>>> _________________
>>> Michael Layne
>>> 9 degrees development
>>> _______________________________________________
>>> 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