Try creating your input with names that php will create arrays from, then
you can simply join the array elements if they are non-empty with something
like " OR $key='$val'".

An example:

  <form>
  <input type="text" name="filter[haircolor]">
  <input type="checkbox" name="filter[registered]" value='Y'>
  </form>

When submitted you could then:
  
  $clause = '';
  if (sizeof($_POST['filter']) > 0) {
    $clause = 'WHERE ';
    foreach($_POST['filter'] as $key=>$val) {
        $tmp[] = "$key LIKE '%$val%'";
    }
    $clause .= join(' OR ', $tmp);
  }
  $sql = 'SELECT * FROM table $clause';

Of course you may want to add checks on what was entered or build a
mechanism so that you don't necessarily join all the filters with 'OR'. But,
I think you get the idea.  Hope it helps.

Court

> -----Original Message-----
> From: Geoffrey Makstutis [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, March 05, 2002 8:12 AM
> To: [EMAIL PROTECTED]
> Subject: [PHP-DB] multiple select statements
> 
> 
> Hi,
> 
> I've got an HTML form which allows users to select various 
> criteria to search for in my database (MySQL). 
> 
> The problem is that I can't seem to figure out how create the 
> SELECT statement, given the fact that they could choose any 
> or none of the criteria. 
> 
> Does anyone know of a way to dynamically create a SELECT 
> statement that might have different numbers of criteria?
> 
> Thanks
> 
> 

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

Reply via email to