我有一个包含过滤器公司零件号的大型数据库。一些产品具有相似的年份和型号。我有一个 php 脚本,它正在搜索每个部分的文本关键字部分。
因此,对于 1997-1999 Honda Crf 250 090987 19.95,关键字是:1997 1998 1999 honda crf 250 090987
我从教程中获得了代码,它被编写用于搜索关键字部分以查找由空格分隔的所有内容。问题是很多房源都有本田或类似的年份价差。
我需要弄清楚如何更改 php 以缩小结果范围,因此如果有人键入“1997 honda”,则不会出现所有的 honda 和 97 年代,而只会出现 1997 年的 honda。
我是 php 新手,我环顾四周,无法弄清楚。任何帮助将不胜感激。
这是php:
$keywords = $_GET['keywords'];
$terms = explode(" ", $keywords);
$query = "SELECT * FROM search WHERE ";
foreach ($terms as $each){
$i++;
if ($i == 1)
$query .= "keywords LIKE '%$each%' ";
else
$query .= "OR keywords LIKE '%$each%' ";
}
// connect
mysql_connect("localhost", "root", "root");
mysql_select_db("catalog");
$query = mysql_query($query);
$numrows = mysql_num_rows($query);
if ($numrows > 0){
while ($row = mysql_fetch_assoc($query)){
$id = $row['id'];
$year = $row['year'];
$manufacturer = $row['manufacturer'];
$product = $row['product'];
$partnumber = $row['partnumber'];
$price = $row['price'];
echo "<div id=\"results\">
<div class=\"words\">$year</div><div class=\"words\">$manufacturer</div><div class=\"words\">$product</div><div class=\"words\">$partnumber</div>$price<br /></div>";
}
}
else
echo "<div class=\"no_results\"><center>No results found for \"<b>$keywords</b>\"</center></div>";
// disconnect
mysql_close();
?>