I have a search page on which I place six fields into which users may enter
data to perform a search. For ease of explanation, the fields are:
Part Number
Title
Subtitle
Print Date
Status
Type

All of these fields reside in the same table, named docmeta, in a MySQL
database.

I'm running into a logic problem when a user enters data into only one or
two of the six fields. The question/problem is how do I write a MySQL query
when not all of the parameters are filled in each time? Is this a problem
that needs to be handled on the PHP side with a bunch of IF statements when
constructing the MySQL string or is there a MySQL command or syntax that
accommodates variable length parameter sets?

The problem is when a search parameter is left blank by the user. If I
include the empty parameter in the query (e.g. SELECT * FROM docmeta WHERE
partnum LIKE "%" AND title LIKE "%" AND subtitle LIKE "";) then an empty set
is returned when subtitle is not blank in the database. This is totally
understandable, since that's what subtitle LIKE "" means, but it's not what
I want to send.

Essentially, I want to skip sending the subtitle LIKE "" part when subtitle
field is not filled in by the user.

Incidentally, the query works fine if I use OR instead of AND, but switching
to an all OR query is not an option; I need to be able to perform both.

I've checked the archives and the MySQL manual (especially the language
reference) and I haven't found anything that answers my question.

I'm fairly certain I'll be able to figure this out if somebody points me in
the right direction, but I don't think I even know what (or where) to look
for the answer. Any help would be appreciated.

Thanks,
Rich


-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to