Thread: Wildcard queries via PHP4

Wildcard queries via PHP4

From
rickf
Date:
Hi,

I am trying to find the syntax to pass a wildcard query through to postgres.
Basically I just want to use the user input as a substring of the actual query to postgres.
It can even be simpler, I realy only need the wildcard at end of the input string

i.e. user inputs Smith in form, I want to pick up Smith & Smithsonian.

Right now I have:

if ( strlen($NAME) >0):
        $NAME = addslashes($NAME);
        $NAME = strtolower($NAME);   /
        $NAME = ucfirst($NAME);   //translation final to Upper 1st letter rest lower as per db format.
        
$conn = pg_Connect("dbname=damn_db port=5432");
if(!$conn) { echo "Error in connecting to DB\n"; exit;  }
        $result = pg_Exec($conn, "SELECT * FROM table2 WHERE surname = '$NAME' ");      
For whatever reason the *~ matching does not work in PHP4 (ie surname *~ )
(or more precisely I can't get it to work)

Any suggestions?

Many thanks.




_______________________________
Rick Frank
Dufferin Research
 
mailto:rickf@dufferinresearch.com
________________________________

Re: Wildcard queries via PHP4

From
Chris Smith
Date:
Hey,

try LIKE..

so..
$query = "SELECT * FROM table2 WHERE surname LIKE '%$name%'";

the % before matches anything before $name (so goldsmith would match), %
after matches anything after $name (so smithsonian matches)..

Check out http://www.postgresql.org/docs/aw_pgsql_book/node51.html for more
info..

HTH

Chris.

> I am trying to find the syntax to pass a wildcard query through to
> postgres. Basically I just want to use the user input as a substring of the
> actual query to postgres.
> It can even be simpler, I realy only need the wildcard at end of the input
> string
>
> i.e. user inputs Smith in form, I want to pick up Smith & Smithsonian.
>
> Right now I have:
>
> if ( strlen($NAME) >0):
>          $NAME = addslashes($NAME);
>          $NAME = strtolower($NAME);   /
>          $NAME = ucfirst($NAME);   //translation final to Upper 1st letter
> rest lower as per db format.
>
> $conn = pg_Connect("dbname=damn_db port=5432");
> if(!$conn) { echo "Error in connecting to DB\n"; exit;  }
>          $result = pg_Exec($conn, "SELECT * FROM table2 WHERE surname =
> '$NAME' ");
> For whatever reason the *~ matching does not work in PHP4 (ie surname *~ )
> (or more precisely I can't get it to work)
>
> Any suggestions?


Re: Wildcard queries via PHP4

From
Jesus Aneiros
Date:
You could try LIKE and %, but I think it is ~* and not *~

Saludos, Jesus.

On Thu, 5 Apr 2001, rickf wrote:

> Hi,
>
> I am trying to find the syntax to pass a wildcard query through to postgres.
> Basically I just want to use the user input as a substring of the actual
> query to postgres.
> It can even be simpler, I realy only need the wildcard at end of the input
> string
>
> i.e. user inputs Smith in form, I want to pick up Smith & Smithsonian.
>
> Right now I have:
>
> if ( strlen($NAME) >0):
>          $NAME = addslashes($NAME);
>          $NAME = strtolower($NAME);   /
>          $NAME = ucfirst($NAME);   //translation final to Upper 1st letter
> rest lower as per db format.
>
> $conn = pg_Connect("dbname=damn_db port=5432");
> if(!$conn) { echo "Error in connecting to DB\n"; exit;  }
>          $result = pg_Exec($conn, "SELECT * FROM table2 WHERE surname =
> '$NAME' ");
> For whatever reason the *~ matching does not work in PHP4 (ie surname *~ )
> (or more precisely I can't get it to work)
>
> Any suggestions?
>
> Many thanks.
>
>
>
>
>
> _______________________________
> Rick Frank
> Dufferin Research
>
> mailto:rickf@dufferinresearch.com
> ________________________________
>
>


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster




Re: Wildcard queries via PHP4

From
"Adam Lang"
Date:
Use LIKE, as others have mentioned.  The reason the wildcard doesn't work is
because it isn't supposed to.  No SQL should use it.

Adam Lang
Systems Engineer
Rutgers Casualty Insurance Company
http://www.rutgersinsurance.com
----- Original Message -----
From: "rickf" <rickf@dufferinresearch.com>
To: <pgsql-php@postgresql.org>
Sent: Thursday, April 05, 2001 8:17 PM
Subject: [PHP] Wildcard queries via PHP4


> Hi,
>
> I am trying to find the syntax to pass a wildcard query through to
postgres.
> Basically I just want to use the user input as a substring of the actual
> query to postgres.
> It can even be simpler, I realy only need the wildcard at end of the input
> string
>
> i.e. user inputs Smith in form, I want to pick up Smith & Smithsonian.
>
> Right now I have:
>
> if ( strlen($NAME) >0):
>          $NAME = addslashes($NAME);
>          $NAME = strtolower($NAME);   /
>          $NAME = ucfirst($NAME);   //translation final to Upper 1st letter
> rest lower as per db format.
>
> $conn = pg_Connect("dbname=damn_db port=5432");
> if(!$conn) { echo "Error in connecting to DB\n"; exit;  }
>          $result = pg_Exec($conn, "SELECT * FROM table2 WHERE surname =
> '$NAME' ");
> For whatever reason the *~ matching does not work in PHP4 (ie surname *~ )
> (or more precisely I can't get it to work)
>
> Any suggestions?
>
> Many thanks.
>
>
>
>
>
> _______________________________
> Rick Frank
> Dufferin Research
>
> mailto:rickf@dufferinresearch.com
> ________________________________
>
>


RE: Wildcard queries via PHP4

From
"Jeff Fitzmyers"
Date:
This works for me on 7.1 beta 6; php-4.0.4pl1

$sql="SELECT *
 FROM customer
 WHERE $look_in ~*'$text' AND
  mbewbe='$mbewbe' AND
  c_state $query_location
 ORDER BY company_name;";

jeff fitzmyers
>>>>

For whatever reason the *~ matching does not work in PHP4 (ie surname *~
)
(or more precisely I can't get it to work >>>>>>

Re: RE: Wildcard queries via PHP4

From
Grant
Date:
As far as I know "LIKE" is case sensitive, where as ~* is regular
expression matching and is case insensitive.

On Fri, 6 Apr 2001, Jeff Fitzmyers wrote:

> This works for me on 7.1 beta 6; php-4.0.4pl1
>
> $sql="SELECT *
>  FROM customer
>  WHERE $look_in ~*'$text' AND
>   mbewbe='$mbewbe' AND
>   c_state $query_location
>  ORDER BY company_name;";
>
> jeff fitzmyers
> >>>>
>
> For whatever reason the *~ matching does not work in PHP4 (ie surname *~


Re: Wildcard queries via PHP4

From
Jesus Aneiros
Date:
You could try LIKE and %, but I think it is ~* and not *~

Saludos, Jesus.

On Thu, 5 Apr 2001, rickf wrote:

> Hi,
>
> I am trying to find the syntax to pass a wildcard query through to postgres.
> Basically I just want to use the user input as a substring of the actual
> query to postgres.
> It can even be simpler, I realy only need the wildcard at end of the input
> string
>
> i.e. user inputs Smith in form, I want to pick up Smith & Smithsonian.
>
> Right now I have:
>
> if ( strlen($NAME) >0):
>          $NAME = addslashes($NAME);
>          $NAME = strtolower($NAME);   /
>          $NAME = ucfirst($NAME);   //translation final to Upper 1st letter
> rest lower as per db format.
>
> $conn = pg_Connect("dbname=damn_db port=5432");
> if(!$conn) { echo "Error in connecting to DB\n"; exit;  }
>          $result = pg_Exec($conn, "SELECT * FROM table2 WHERE surname =
> '$NAME' ");
> For whatever reason the *~ matching does not work in PHP4 (ie surname *~ )
> (or more precisely I can't get it to work)
>
> Any suggestions?
>
> Many thanks.
>
>
>
>
>
> _______________________________
> Rick Frank
> Dufferin Research
>
> mailto:rickf@dufferinresearch.com
> ________________________________
>
>


---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster




Re: Wildcard queries via PHP4

From
"Peter"
Date:
yes the easiest way is     select * from table where LIKE '%$NAME%' for case
sensitive search
or        select * from table where ILIKE '%$NAME%'    if the you want to do
a case insensitive search
much, much, much faster than regular expression

regards, Peter


----- Original Message -----
From: "Jesus Aneiros" <aneiros@ucfinfo.ucf.edu.cu>
To: <beloshapka@mnogo.ru>
Cc: <pgsql-php@postgresql.org>
Sent: Friday, April 06, 2001 1:28 PM
Subject: Re: [PHP] Wildcard queries via PHP4


> You could try LIKE and %, but I think it is ~* and not *~
>
> Saludos, Jesus.
>
> On Thu, 5 Apr 2001, rickf wrote:
>
> > Hi,
> >
> > I am trying to find the syntax to pass a wildcard query through to
postgres.
> > Basically I just want to use the user input as a substring of the actual
> > query to postgres.
> > It can even be simpler, I realy only need the wildcard at end of the
input
> > string
> >
> > i.e. user inputs Smith in form, I want to pick up Smith & Smithsonian.
> >
> > Right now I have:
> >
> > if ( strlen($NAME) >0):
> >          $NAME = addslashes($NAME);
> >          $NAME = strtolower($NAME);   /
> >          $NAME = ucfirst($NAME);   file://translation final to Upper 1st
letter
> > rest lower as per db format.
> >
> > $conn = pg_Connect("dbname=damn_db port=5432");
> > if(!$conn) { echo "Error in connecting to DB\n"; exit;  }
> >          $result = pg_Exec($conn, "SELECT * FROM table2 WHERE surname =
> > '$NAME' ");
> > For whatever reason the *~ matching does not work in PHP4 (ie surname
*~ )
> > (or more precisely I can't get it to work)
> >
> > Any suggestions?
> >
> > Many thanks.
> >
> >
> >
> >
> >
> > _______________________________
> > Rick Frank
> > Dufferin Research
> >
> > mailto:rickf@dufferinresearch.com
> > ________________________________
> >
> >
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>