首先抱歉我的英语,但我会尝试让我的想法清楚。 我的目标:使用一个输入字段在多列中搜索。我举一个例子,让你们更容易理解。
我有很多不同品牌的CPU。所以,如果我要写" CPU"它将为我提供所有品牌的所有CPU,但如果我要继续编写" CPU Lenovo"它会告诉我仅适用于联想品牌的CPU。所以更多细节会给出更具体的结果。
这是我的代码:
<?php
require ('connection.php');
if (!empty($_POST['partname'])) {
$search = explode(" ", rtrim($_POST['partname'], " "), 2);
$prlist_name = "";
$prlist_model = "";
foreach ($search AS $s) {
$prlist_name .= "`prlist_name` LIKE '%" . mysql_real_escape_string($s) . "%' AND ";
$prlist_model .= "`prlist_model` LIKE '%" . mysql_real_escape_string($s) . "%' OR ";
}
$prlist_name = substr($prlist_name, 0, -4);
$prlist_model = substr($prlist_model, 0, -4);
$query = mysql_query("SELECT * FROM `prlist` WHERE ($prlist_name) AND ($prlist_model)");
if (mysql_num_rows($query) > 0) {
while ($row = mysql_fetch_assoc($query)) {
echo "<tr>";
echo "<td>" . $row['prlist_name'] . "</td>";
echo "<td>" . $row['prlist_model'] . "</td>";
echo "</tr>";
}
}
} else {
header('Location: index.php');
exit();
}
?>
我的代码问题是单独搜索。我的意思是,如果我要写&#34; CPU联想&#34;。它将向我展示联想的全部部件。例如:
那就是它。谢谢大家:))
答案 0 :(得分:0)
SELECT * FROM prlist WHERE MATCH (prlist_name,prlist_model)
AGAINST ('+CPU +Lenovo' IN BOOLEAN MODE);
http://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html