如何使用一个搜索栏搜索数据库中的多个列

时间:2015-09-24 09:24:46

标签: mysql

我有一个包含多个列的数据库表:

Category               Model       Manufacturer
Roland Pianos    |     HP605  |    Roland
Kawai Pianos     |     CL36   |    Kawai
Roland Keyboards |     BK9    |    Roland

我希望能够同时搜索两个列,所以当我放入搜索栏Roland HP605时,我希望结果显示Roland HP605。

目前我有以下内容: 搜索框:

<input id="search" name="Search" type="text" placeholder="Search Products">

搜索代码:

if (isset($_GET['Search'])) {
$query_RS_Search ="SELECT * FROM products WHERE Category LIKE :search OR products.Manufacturer LIKE :search OR products.Model LIKE  :search";

$RS_Search = $conn->prepare($query_RS_Search) or die(errorInfo());
$RS_Search->BindValue(':search', '%'.$_GET['Search'].'%');
$RS_Search->execute();
$row_RS_Search = $RS_Search->fetch();

如果你把搜索栏“Roland”放进去,所有Roland产品都会出现钢琴和键盘,但是如果我搜索“Roland HP605”它将​​无法找到它。

欢迎任何帮助

1 个答案:

答案 0 :(得分:0)

试试这个

SELECT * FROM products WHERE CONCAT(Category, products.Manufacturer,products.Model) LIKE :search