RE: [PHP-DB] MultSelect ListBox hell!
| From: | Ford, Mike | Date: | Wed, 22 Sep 2004 16:11:50 +0000 |
| Subject: | RE: [PHP-DB] MultSelect ListBox hell! | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-36343@lists.php.net to get a copy of this message | ||
> -----Original Message-----
> From: Stuart Felenstein [mailto:stuart4m@yahoo.com]
> Sent: 22 September 2004 16:45
>
> --- "Ford, Mike" <M.Ford@leedsmet.ac.uk> 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
---------------------------------------------------------------------
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@leedsmet.ac.uk
Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211