You are here: Re: help with str_replace in select statement « PHP Programming Language « IT news, forums, messages
Re: help with str_replace in select statement

Posted by Rik Wasmus on 09/06/07 12:19

On Thu, 06 Sep 2007 14:03:22 +0200, 4sgcv5hy6d0r =

<fj4sgcv5hy6d0r3@temporaryinbox.com> wrote:

> Hi group!
> Why str_replace does not work in this case?
> Thanks in advance!
>
> if ($cat0 !=3D ''){ $query_cat0 =3D "cat0 LIKE '$cat0%'"; }
> if ($cat1 !=3D ''){ $query_cat1 =3D "AND cat1 LIKE '$cat1%'"; }
> if ($cat2 !=3D ''){ $query_cat2 =3D "AND cat2 LIKE '$cat2%'"; }
>
> $mysql_query =3D "SELECT * FROM mytable WHERE ".$query_cat0." ".
> $query_cat1." ".$query_cat2;
> $what =3D 'WHERE AND';
> $with =3D 'WHERE';
>
> $mysql_query =3D str_replace($what, $with, $mysql_query);
>
> echo $mysql_query;


Because the string is 'WHERE AND', not 'WHERE AND', notice the double =

space. You could use a regex matching whitespace, clearly overkill. I'd =
do =

it like this:

$where_clauses =3D array();

if ($cat0 !=3D ''){ $where_clauses[] =3D "cat0 LIKE '$cat0%'"; }
if ($cat1 !=3D ''){ $where_clauses[] =3D "cat1 LIKE '$cat1%'"; }
if ($cat2 !=3D ''){ $where_clauses[] =3D "cat2 LIKE '$cat2%'"; }

$mysql_query =3D "SELECT * FROM mytable";
if(!empty($where_clauses)) $mysql_query .=3D ' WHERE '.implode(' AND =

',$where_clauses);
echo $mysql_query;
-- =

Rik Wasmus

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация