2012-03-27 81 views
0

我試圖找出搜索多個變量的最佳方法。搜索多個變量php/mysqli

include('connection.inc.php'); 

$column= $_POST['filter'][0][columnName]; 
$value = $_POST['filter'][0][value]; 

$stmt = $mysql->prepare("SELECT * from TABLE WHERE $column like '%?%'"); 
$stmt -> bind_param('s', $value); 
$stmt->execute(); 

我想要做的就是搜索一個以上的字段不止一個字段。 IE:爲值「bob」搜索列名稱,值爲「boston」的列地址 由於列名和值名稱都是數組中的變量,所以我想知道最好的辦法是什麼。謝謝!

+0

請注意,您的'bind_param()'不會像預期的那樣工作,因爲您只是在查詢中插入了'$ value'。使用代替:'$ stmt = $ mysql-> prepare(「SELECT * from TABLE WHERE $ column like'%?%'」);' – 2012-03-27 13:44:56

+0

http://stackoverflow.com/questions/9879471/searching-with-multiple-變量-php-mysql – Anand 2012-03-27 13:45:31

回答

0

一個額外的參數只需添加到您的where子句:

$column1 = $_POST['filter'][0][columnName]; 
$value1 = $_POST['filter'][0][value]; 
// Add your other variables here 

$column2 = $_POST['filter'][1][columnName]; 
$value2 = $_POST['filter'][1][value]; 


$stmt = $mysql->prepare("SELECT * from TABLE WHERE $column1=? AND $column2=?"); 
$stmt -> bind_param('ss', $value1,$value2); 
$stmt->execute(); 

雖然你可能想看看你的分配使用變量的方法。 A $_POST需要每個簡單變量有如此多的索引是不正常的,你必須有更好的方式來編碼它。

+0

它不正常,但它是一個複雜的事情。這裏簡化了它。使用AND會工作,但查詢的數量也不盡相同。所以只需要1個地方或我可能需要4個。 – Severian 2012-03-27 15:26:58