RE: MultSelect ListBox hell!

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

 



Just to confirm, 
This is what I'm going to start with:

//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
if (is_array($_POST['state']))
$sql .= "state='".implode("' OR state='",
$_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['state']))
       $sql .= "state='".implode("' OR state='",
$_POST['state'])."'";
    $sql .= ")";
  }else{
$_POST['job'] is not an array
     $sql .= "job = '".$_POST['job']."' ";
 }
//end if
 ?>
--- "Ford, Mike" <M.Ford@xxxxxxxxxxxxxx> wrote:

> > -----Original Message-----
> > From: Stuart Felenstein
> [mailto:stuart4m@xxxxxxxxx] 
> > Sent: 22 September 2004 16:45
> > 
> > --- "Ford, Mike" <M.Ford@xxxxxxxxxxxxxx> wrote:
> > 
> > > >    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'])."')"; )
> > 
> > Sorry, cause I know this is probably a stupid
> > question, but what block of code does the implode
> > statement replace ?
> 
> Everything inside the if(is_array()).  Ummm, that
> should probably still be a
> .= operator, then.  There's also some quotes missing
> in the original
> version, so:
> 
>     if (is_array($_POST['state']))
>        $sql .= "state='".implode("' OR state='",
> $_POST['state'])."'";
> 
> Cheers!
> 
> Mike
> 
> 

-- 
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