Is there any other way rather than making the extra queries?
Ok, so after posting this it hit me. I could use a simple <isNotEmpty> property and nest the
iterator in it. It requires copying the whole iterator twice but it is easier and better than making the extra query statement.
I am having problems with the conjunction though, meaning that the conjunction isn't giving me the desired effect.
Here is the whole code:
<isEmpty property="search_terms">
<iterate prepend = "AND" property = "keywords" open = "(" close = ")"
conjunction = "AND">
<isNotEmpty property= "search_fields" >
post.title ilike '%$keywords[]$%' or
</isNotEmpty>
post.text ilike '%$keywords[]$%'
</iterate>)
</isEmpty><isNotEmpty property="search_terms">
<iterate prepend = "AND" property = "keywords" open = "(" close = ")"
conjunction = "AND">
<isNotEmpty property= "search_fields" >
post.title ilike '%$keywords[]$%' or
</isNotEmpty>
post.text ilike '%$keywords[]$%'
</iterate>)
</isNotEmpty>The parenthesis ) after the closing iterate tag is not a bug, it is being done inside a subquery and that's the closing parenthesis.
If i execute the query manually:
(... and (post.title ilike '%tecnologia%' or post.text ilike '%tecnologia%') and (post.title ilike '%sirve%' or post.text ilike '%sirve%'))
It gives me exactly 1 result, which is what i am looking for.
However, if i execute this query manually:
(... and (post.title ilike '%tecnologia%' or post.text ilike '%tecnologia%' and post.title ilike '%sirve%' or post.text ilike '%sirve%'))
Notice the lack of the parenthesis after tecnologia and bfore the second post.title.
It gives me the same results as when i use the conjunction OR.
Is the iterator not using the parenthesis properly? Is the conjunction in sqlmap working?
Am i doing something stupid that i am not seeing?
I tried seaching for only "tecnologia" and then "tecnologia" or "sirve" with sqlmaps, and i
am getting the proper results, so i don't think i am making a mistake.
For kicks, i tried setting both iterators to AND to just check if the code was never executing properly.
-- Francisco Javier Le�n Arosemena X Semestre de Lic. en Computaci�n Maracaibo, Edo. Zulia, Venezuela

