首先对我的英语感到抱歉,但我会尽量让我的想法清楚。 我的目标是:使用一个输入字段在多列中进行搜索。我会举一个例子,让大家更容易理解。MySQL PHP搜索使用一个输入来搜索多列
我有很多不同品牌的CPU。所以如果我要写“CPU”,它会给我所有品牌的所有CPU,但是如果我要继续写“CPU联想”,它会向我展示只适用于联想品牌的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();
}
?>
与我的代码的问题是单独搜索。我的意思是,如果我打算写“CPU联想”。它会显示联想的整个部分。例如:
- CPU |联想G580
- RAM |联想T430
- CPU |联想Z500
就是这样。感谢所有:)
你应该找到在MySQL的布尔全文搜索 –
@AlexanderCeballos谢谢:) –