Re: variable within regular expression
| From: | Jeffrey_N_Dyke at Keane dot com | Date: | Mon, 07 Apr 2003 17:25:53 +0000 |
| Subject: | Re: variable within regular expression | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-26909@lists.php.net to get a copy of this message | ||
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: [PHP-DB] 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: [PHP-DB] 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