2012-07-26 165 views
-3

我想在特定列值包含在PHP變量中時返回特定表中的所有行,例如:第34行:有'xyz'列等於=「rabbit」和我的PHP變量是$var = "rabbit,robert,teen",因爲「xyz」列值包含在$var我希望它被選中。PHP,Mysql,在數據庫內搜索

我該怎麼做?

+0

它更改爲XYZ IN(兔,羅伯特,青少年) – Cups 2012-07-26 15:04:14

+0

@Cups等價的:他可能不希望'robert'和'青少年'。還是他? – 2012-07-26 15:05:27

+0

我沒有羅伯特和青少年的任何事情,但因爲兔子是在PHP變量和xyz列是兔子我希望列返回。 – southpaw22 2012-07-26 15:06:44

回答

0

如果我正確理解你的問題,你在尋找這樣的事情:

$arr = explode(',', $var); 
$where_in_val = ''; 
foreach($arr as $value){ 
    $where_in_val.= "'$value',"; 
} 
$where_in_val = substr($where_in_val,0,-1); 

那麼你的查詢可能是這樣的

SELECT * FROM my_table WHERE xyz IN ($where_in_val) 

注意:不要忘記清洗/逃避/消毒用戶的輸入。

2

轉換逗號分隔的列表,以SQL格式和位置查詢

$query = "select blah blah WHERE xyz IN ('".str_replace("," ,"','", $var)."');" 
+1

非常整齊,+1 – Adi 2012-07-26 15:17:41