RE: MultSelect ListBox hell!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Bastien Koert [mailto:bastien_k@xxxxxxxxxxx] 
> Sent: 22 September 2004 15:27

[....]

> //base sql statement
> $sql = "select * from jobs where record_deleted = 'NO' ";
> 
> if (isset($_POST['states'])){
>    //check to see if the states is an array (multiple items 
> or just one

This check isn't really necessary in PHP, since $_POST['state'] will *always* be an array if the form field has NAME='state[]', even if only 1 is selected.

>    if (is_array($_POST['state'])){
>      $sql .= "(";
>      $x = 0;
>      foreach ($_POST['state'] as $state)
>        if ($x == 0){
>        $sql.= "state = '$state' ";
>        $x=1;
>      }else{
>         $sql .= " OR state = '$state' ";
>     }
>     $sql .= ")";

PHP has the very nice implode function to make this much easier:

    $sql = "state='".implode(' OR state=', $_POST['state'])."'";

(If your database supports the IN operator, this is probably even better:
    $sql = "state IN ('".implode("','", $_POST['state'])."')"; )

>   }else{
>      //$_POST['state'] is not an array
>      $sql .= "state = '".$_POST['state']."' ";
> }//end if
> 
> if (isset($_POST['job'])){
>   if (isset($_POST['state'])){  $sql .= " AND "; }  //add in 
> the AND if the 
> state is set
>   //check to see if the states is an array (multiple items or just one
>    if (is_array($_POST['job'])){
>      $sql .= "(";
>      $x = 0;
>      foreach ($_POST['job'] as $job )
>        if ($x == 0){
>        $sql.= "job = '$job ";
>        $x=1;
>      }else{
>         $sql .= " OR job = '$job ";
>     }
>     $sql .= ")";
>   }else{
>      //$_POST['job'] is not an array
>      $sql .= "job = '".$_POST['job']."' ";
> }//end if

Ditto for the job field.

Cheers!

Mike

---------------------------------------------------------------------
Mike Ford,  Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services, JG125, James Graham Building, Leeds Metropolitan University, Headingley Campus, LEEDS,  LS6 3QS,  United Kingdom
Email: m.ford@xxxxxxxxxxxxxx
Tel: +44 113 283 2600 extn 4730      Fax:  +44 113 283 3211

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


[Index of Archives]     [PHP Home]     [PHP Users]     [Postgresql Discussion]     [Kernel Newbies]     [Postgresql]     [Yosemite News]

  Powered by Linux