2012-03-27 10 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:列名と値の名前の両方が、アレイ内の変数であるため、値の値「ボブ」とカラムアドレスの検索列名が「ボストン」は が、私はそうするための最良の方法だろうかを知りたかったです。ありがとう!

+0

'$ value'をクエリに挿入したばかりなので、あなたの' bind_param() 'は期待通りに動作しません。代わりに、 '$ stmt = $ mysql-> prepare(" WHERE $ column '%?%' "のようなテーブルからのSELECT *);' –

+0

http://stackoverflow.com/questions/9879471/searching-with-multiple- variables-php-mysql – Anand

答えて

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(); 

。単純変数ごとに非常に多くの指標を必要とする$_POSTは私の経験では正常ではありません。それをコード化するためのより良い方法が必要です。

+0

それは普通ではありませんが、複雑なことです。それはここで簡素化されています。 ANDを使用すると動作しますが、クエリの数も変わります。だから1つだけ必要か、私は4つが必要です。 – Severian