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