2017-09-23 162 views
-1

因此,我定义了一个用于从数据库搜索并将结果传递给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(); 
} 

但我的问题是它的工作只有一个词。我试着用“”爆炸$ _POST值。然后使foreach和建立多个查询,如$查询[我],但我不能得到任何回应?

当回应结果时如何实现该功能 - 那么它会在每个单词与这些字段条目进行比较时产生回声?

+1

不清楚你在问什么 – Ravi

+0

我现在只能回显单个词搜索。多词查询不会导致任何结果。 –

回答

1

相反爆炸的搜索查询和生成吨的条件下,你可以使用简单的“绝招”:

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

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

不要忘了逃跑输入或参数化查询。

+0

超级,它的工作!谢谢! –