Wednesday 15 January 2014

Searching an item that is stored with multiple names concatenated with ** in mysql using PHP -



Searching an item that is stored with multiple names concatenated with ** in mysql using PHP -

i'm trying perform search of database in php using values containing ** separate different values. 1 illustration database is:

gs 300**gs3000

i want search values in db either gs 300 or gs3000.

my script is:

$query = "select distinct(parts_cats.part_type) parts_cats stock.item_specifics_type in ('$ids') , stock.stock_item!='' , make='$make' , model '%" . mysql_real_escape_string($model) . "%'"

currently search works fine non-double asterick values (e.g. if searching g3 500) returns no results gs 300**gs3000.

if want find either 1 or other model should (although expensive). don't know ** , how have stored things in database...

"select distinct(parts_cats.part_type) parts_cats stock.item_specifics_type in ('$ids') , stock.stock_item!='' , make='$make' , ( model '%" . mysql_real_escape_string($modelone) . "%' or model '%" . mysql_real_escape_string($modeltwo) . "%')"

or resulting query

select distinct(parts_cats.part_type) parts_cats stock.item_specifics_type in ('$ids') , stock.stock_item!='' , and='$make' , ( model '%gs 300%' or model '%gs3000%')

edit:

ok have table fields id concatnames , have entries 5, gs 300**gs3000 in it.. whatever user inputs , utilize query wrote above.. did seek yet?

you can have user input string one:

$str = "something**something2**something3";

then can array using

$array = explode("**",$str)

or have multiple <input>s user set things separately in.

in either case have $array of different values..

then build dynamically part of query as

"and (model '%".$array[0]."%' or model '%".$array[1]."%' or model '%".$array[2]."%')"

this work if user inputs gs300,gs3000 lone or gs 300**gs3000 or gs3000**gs 300

php mysql search

No comments:

Post a Comment