For readability (and writability...) purpose, I prefer to write such a query in the form: $query = "SELECT {$field}FROM {$table}WHERE {$variable}REGEXP '{$con}' " ; Ignatius ____________________________________________ ----- Original Message ----- From: <Jeffrey_N_Dyke@Keane.com> To: "Robbie Staufer" <rstaufer@scd.ucar.edu> Cc: <php-db@lists.php.net>; "Rob Bryant" <rob@3jar.com> Sent: Monday, April 07, 2003 7:25 PM Subject: Re: variable within regular expression > > if you want to truley use regular expressions, change the query to $query > = "SELECT " . $field . " FROM " . $table . " WHERE " . > $variable . " REGEXP '".$con."'"; > > and drop the %'s, as you won't need them with a true REGEXP search. > as far as the signle quotes those should be fine. but in this example i > concatenated with -> . > > this could be nothing like what your looking for...and if so, sorry for th > waste of bandwidth. > > jd > > > > Robbie Staufer > <rstaufer@scd. To: Rob Bryant <rob@3jar.com> > ucar.edu> cc: php-db@lists.php.net > Subject: Re: variable within regular expression > 04/07/2003 > 01:19 PM > > > > > > > Thanks for the help. Here's what I tried: > // convert $con to regular expression > $con = "%$con%"; > $query = "SELECT " . $field . " FROM " . $table . " WHERE " . > $variable . " LIKE '%{$con}%'"; > > I'm sure this is close to correct, but it's not working yet. The > application itself works for numeric values for $con, and also for exact > string values for $con. But if a partial string is entered for $con, > the regex conversion part fails. > > Thanks, > Robbie Staufer > > Rob Bryant wrote: > > >>-----Original Message----- > >>From: Robbie Staufer [mailto:rstaufer@scd.ucar.edu] > >>Sent: Friday, April 04, 2003 3:59 PM > >>To: php-db@lists.php.net > >>Subject: variable within regular expression > >> > >> > >> > >>I have a php query form in which the user input must be converted to a > >>regular expression before querying the db. Something like this > >>pseudo code: > >> $var = $_GET['usr-input']; > >> $var = '%$var%'; > >>SELECT * FROM table WHERE field LIKE $var. > >> > >>I can't find the right syntax to make this work. Does anyone know? > >> > >> > >> > > > >I think maybe the single quotes don't interpolate the value of the > variable. > > > >In other words, let's say $var is 'fubar': > > > >$var = '%$var%'; // -> is literally %$var% > > > >vs. > > > >$var = "%$var%"; // -> is %fubar% > > > >Anyway, here's some of my code that is similar to (what I think) you're > >trying to do: > > > >if (isset($_GET['nstring'])) { > > $nstring = addslashes($_GET['nstring']); > > $squery = "SELECT * FROM lead > > WHERE name LIKE '%{$nstring}%' > > ORDER BY source, ref_by, date DESC"; > > $sresult = mysql_query($squery); > >} // etc... > > > > > > > > > > -- > -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* > Robbie Staufer > NCAR/SCD > 1850 Table Mesa Dr. Rm. 42 > Boulder, CO. 80305 > (303) 497-1836 > > > > > > > > -- > PHP Database Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php