[FX.php List] Stupid Find Question
Marisa Smith
marisa at datasmithconsulting.net
Tue Dec 21 20:58:34 MST 2004
Greg -
Thanks for testing so thoroughly! I'm having some unrelated problems with
the web server I use for testing right now, so I won't be able to work on
this again until later tomorrow when they get the server back up for me.
I'll keep everyone posted when I find a solution.
Thanks again for the efforts!
Marisa
On 12/21/2004 5:32 PM, "Greg Lane" <glane at moyergroup.com> wrote:
> 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
>>
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
---------------------------------------------------------------------
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
More information about the FX.php_List
mailing list