2013-04-26 78 views
0

是否有预先存在的库将用户输入并将其转换为SQL WHERE子句?用户搜索SQL查询Where Where子句

例如因为有last_namefirst_name,数据库和address用户可以输入类似:

John State St 

和图书馆将建立一个查询,例如,它会返回匹配名为家伙,行生活在圣路易斯的约翰(或者一个名叫州的人,就此而言,他住在约翰街上)。

它也可以支持诸如指定列:

first_name:John address:State 

我有一些简单的代码来处理一些案件已经但是它不方便的,开始有点。我认为这个问题有一些预先存在的解决方案,但我很难找到它们。一般来说,问题在于如何使用户能够使用单个输入字段轻松搜索结构化数据库。

+0

对于特定的编程语言? – 2013-04-26 18:45:50

+1

您可以尝试[全文搜索](http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html)。 – 2013-04-26 18:52:55

回答

0

Jquery UI自动完成可能是你正在寻找的。随着它的CSS也是必要的,请参阅此链接http://api.jqueryui.com/autocomplete/为.js和CSS所需。

$("#myInputBoxId").autocomplete({ 
     source: "search.php", 
     minLength: 2, 
     select: function(event, ui) { 
      log(ui.item ? 
       "Selected: " + ui.item.value + " aka " + ui.item.id : 
       "Nothing selected, input was " + this.value); 
     } 
    }); 

和search.php中

<?php 
include 'config.php'; 
$results =array(); 
$req = "SELECT product_name " 
    ."FROM table4 " 
    ."WHERE product_name LIKE '%".$_REQUEST['term']."%' LIMIT 5"; 

$query = mysqli_query($con,$req); 

while($row = mysqli_fetch_array($query)) 
{ 
    array_push($results,$row['product_name']); 
} 
echo json_encode($results); 

}

+0

似乎只是将问题推到search.php中......它究竟做了什么? – 2013-04-26 18:52:27

+0

请参阅上面的修改.. – user2015144 2013-04-27 12:23:38

0

在这个问题上,你可以使用字符串操作打破字符串作为多值,然后利用搜索每个字中的每一列“或“条件。 此外,您可以在列上定义索引以实现更快的搜索。 您可能已经尝试过这种技术,因为您提到过,但是您必须查找每列中的每个单词