If you have installed Jochen Wiedmann's SQL::Statement module, you can specify an
SQL syntax for the text-based search. (This is not the same as the the
SQL search, treated below separately. It would work on an
SQL table but only on the
ASCII text source file, not on the actual database.)
This syntax allows this rather nice form setup:
Artist: <INPUT NAME="artist">
Title: <INPUT NAME="title">
<INPUT TYPE=hidden NAME="mv_sql_query"
VALUE="
SELECT code FROM products
WHERE artist LIKE artist
AND title LIKE title">
If the right hand side of an expression looks like a column, i.e. is not quoted, then the appropriate form variable is substituted. (If used in a one-click, the corresponding scratch variable is used instead.) The assumption is reversed for the left-hand side -- if it is a quoted string then the column name is read from the passed values -- otherwise the column name is literal.
Search for: <INPUT NAME="searchstring"><BR>
Search in <INPUT TYPE="radio" NAME="column" VALUE="title"> title
<INPUT TYPE="radio" NAME="column" VALUE="artist"> artist
<INPUT TYPE=hidden NAME="mv_sql_query"
VALUE="SELECT code FROM products WHERE 'column' LIKE searchstring">
Once again, this does not do a search on an SQL database, but formats a corresponding text-based search. Parentheses will have no effect, and an OR condition will cause all conditions to be OR. The searches above would be similar to:
[page search="
co=yes
sf=artist
op=rm
se=[value artist]
sf=title
op=rm
se=[value title]
" ]
Search for [value artist], [value title]
[/page]
[page search="
co=yes
sf=[value column]
op=rm
se=[value searchstring]
" ]
Search for [value searchstring]
in [value column]
[/page]