I want an OR test.  If someone searches on last name and enters nothing in
the other fields, I want to find the record(s).  Similarly, if they enter a
first name and no other data, I want to find the record(s).

The part I realize I am missing is to first test to see which fields have
been filled in.  Need some pointers on how to start that.

Thanks!

Mike
----- Original Message -----
From: "Roger Baklund" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: "MikeParton" <[EMAIL PROTECTED]>
Sent: Tuesday, May 14, 2002 3:49 PM
Subject: RE: query for search on mysql database


> * MikeParton
> > I have a similar query in a PHP script.  I want to allow users to
> > use fields
> > in a page to search for the records.  BUT, I want them to be able to
enter
> > the first few characters.  I would think my query, below, would do it
(the
> > entire search works when the WHERE statement has first='$first' OR
> > last='$last' OR....). BUT, when I search using any field (or
> > simply click my
> > submit button) it returns ALL records in the database.  Where is my SQL
> > flawed?
> >
> > SELECT id, first, last, email, phone, message, time
> > FROM visitors
> > WHERE id='$id' OR (first LIKE '$first%') OR (last LIKE '$last%') OR
(email
> > LIKE '$email%') OR (phone LIKE '$phone%') OR (message LIKE '$message%')
OR
> > (time LIKE '$time%') ORDER BY id DESC;
>
> If any of your $-variables are empty, the criteria will be ... LIKE '%',
and
> this will match all rows, and return all rows, because you use OR. Change
it
> to AND, and it should work as expected.
>
> If OR is what you want, you should only check the fields where the user
> actually have entered something... but you should probably use AND... If a
> user enters a first name and a single letter in the last field, he would
> probably expect to get persons with the entered first name and a last name
> starting with the provided letter, not all persons with that first name
and
> all persons with a last name starting with the single letter. :)
>
> --
> Roger
>
>


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to