Andy,

This is true, it does return a length, however in this case he is using that
Len() return to be essentially Zero or NOT Zero. He wants it to be cast to
boolean, which CF will do automatically. 

.......................
Ben Nadel 
www.bennadel.com

-----Original Message-----
From: Andy Matthews [mailto:[EMAIL PROTECTED] 
Sent: Thursday, June 01, 2006 3:59 PM
To: CF-Talk
Subject: RE: Problems with LEN

Len doesn't evaluate true or false. It returns a number relating to the
number of characters in the string.

<!----------------//------
andy matthews
web developer
certified advanced coldfusion programmer ICGLink, Inc.
[EMAIL PROTECTED]
615.370.1530 x737
--------------//--------->

-----Original Message-----
From: Ben Nadel [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 01, 2006 2:54 PM
To: CF-Talk
Subject: RE: Problems with LEN


Bruce,

Don't use quotes in your Len call :

LEN( Form.FirstName )

NOT

LEN("Form.FirstName")

If you use quotes, that will always evaluate to true since the string
"Form.firstname" has a length.

.........................
Ben Nadel
www.bennadel.com

-----Original Message-----
From: Bruce Sorge [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 01, 2006 3:43 PM
To: CF-Talk
Subject: Problems with LEN

OK, I have this query:



<cfquery datasource="#Session.DSN#" name="qSearchResults">

            SELECT ContactID, FIrstName, LastName, DateModified

            FROM Contact

            WHERE 0=0

            AND

            <cfif LEN("Form.FirstName") GT 0>

            FirstName

            <cfif Form.searchCriteria IS "exactPhrase">

                        = '#Form.FirstName#'

            <cfelseif Form.searchCriteria IS "allWords">

                        LIKE '%#Form.FirstName#%'

            </cfif>

            </cfif>

            <cfif LEN("Form.LastName") GT 0>

            AND LastName

            <cfif Form.searchCriteria IS "exactPhrase">

                        = '#Form.LastName#'

            <cfelseif Form.searchCriteria IS "allWords">

                        LIKE '%#Form.LastName#%'

            </cfif>

            </cfif>

</cfquery>



I can dump the LEN of firstname and lastname. So if I do not enter anything
in the lastname field and enter something in the firstname field, the len
for firstname is X and the LEN for lastname is 0, so by allrights it should
only do the AND FirstName = "#Form.FirstName# if I select exactPhrase. The
only way it works if I enter something in one field but not the other is if
I select allWords, because it is using the LIKE operator. So why is it that
if I use ExactPhrase it executes the following query:



SELECT ContactID, FirstName, LastName, DateModified

FROM Contact

WHERE 0=0

AND FirstName = 'Bruce'

AND LastName = ' '



LastName should not even be a part of the query if I do not enter anything
into it.



Thanks,





Bruce Sorge














~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Message: http://www.houseoffusion.com/lists.cfm/link=i:4:241962
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to