2017-09-23 11 views
-1

DBから検索して結果をajaxに渡す関数を定義しました。複数の単語を使ったPHP検索

function do_search() { 
    $search=$_POST['dname']; 
    global $wpdb; 
    $sql="SELECT * FROM employee WHERE `firstname` LIKE '%{$search}%' OR `lastname` LIKE '%{$search}%' OR `department`LIKE '%{$search}%' OR `phone` LIKE '%{$search}%' OR `job_title` LIKE '%{$search}%' OR `cell_phone` LIKE '%{$search}%' OR `image`LIKE '%{$search}%' OR `email` LIKE '%{$search}%' OR `address` LIKE '%{$search}%' OR `room` LIKE '%{$search}%';"; 
    $result2=$wpdb->get_results($sql); 
    echo json_encode($result2); 
    wp_die(); 
} 

しかし、私の問題は1つの単語でしか動作しないことです。私は$ _POST値を ""で爆発させようとしました。 foreachを作成して$ query [i]のように複数のクエリを作成しても応答が得られませんか?

結果をエコーするとき、どのように実装すればよいのですか?そして、すべての単語がそれらのフィールドエントリと比較される結果をエコーし​​ますか?

+1

あなたが聞いているものが明確でない – Ravi

+0

現時点では1語の検索のみをエコーすることができます。複数の単語のクエリは何も結果しません。 –

答えて

1

の代わりに検索クエリを爆発し、条件のトンを生産、あなたは単純な「トリック」を使用することができます。

$search = $_POST['dname']; 
$search = str_replace(' ', '%', $search); 

$query = "SELECT * FROM yourTable WHERE col1 LIKE '%{$search}%' OR col2 LIKE '%{$search}%' "; 

は、入力またはパラメータ化クエリをエスケープすることを忘れないでください。

+0

スーパー、それは働いた!ありがとうございました! –

関連する問題