在SQL中的搜索引擎中搜索多词


Search for multi word in search engin in SQL?

我在这个问题上坚持了两天,希望你能帮助我!这是关于我的搜索引擎,我让用户输入一些用空格或逗号分隔的关键词,如果它们与我表中的关键词匹配;它将显示包含确切关键字的表的行,尝试这个,但没有响应:

$words = mysql_real_escape_string($_POST['keyword']);
if(empty($words)){
redirect("welcome.php?error=search_empty");
}
$sql="SELECT * FROM DataTable
 WHERE MATCH (keyword)
 AGAINST ('{$words}' IN NATURAL LANGUAGE MODE)";
$results=mysql_query($sql,$connection);
if(!$results){
redirect("errors/error_db.html");
}
else if($results){
$rows = array();
while($rows = mysql_fetch_array($results, MYSQL_ASSOC))
{
 echo" <tr><td>".$row['Name']."</td><td>".$row['Link']."
 </td><td>".$row['ISSN']."</td><td>".$row['FactorValue']."
 </td><td>".$row['Country']."</td><td>".$row['NoIssuesyear']."
 </td><td>".$row['FirstIssues']."</td></tr>" ;  
 }
 H}

对于您拥有的

while($rows = mysql_fetch_array($results, MYSQL_ASSOC))

什么时候应该有

while($row = mysql_fetch_array($results, MYSQL_ASSOC))

正如Fred所写,有一个拼写错误。您正在填充$rows变量,但随后访问$row。此外,不需要在循环之前将$rows定义为空数组。我在结尾也看到了"H"的拼写错误,但这(我想)是在stackoverflow上发布的唯一结果。

毕竟,这是工作代码:

$words = mysql_real_escape_string($_POST['keyword']);
if (empty($words)) {
  redirect("welcome.php?error=search_empty");
}
$sql = "SELECT * FROM DataTable
 WHERE MATCH (keyword)
 AGAINST ('{$words}' IN NATURAL LANGUAGE MODE)";
$results = mysql_query($sql, $connection);
if (!$results) {
  redirect("errors/error_db.html");
} else if ($results) {
  while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) {
    echo " <tr><td>".$row['Name']."</td><td>".$row['Link'].
    "</td><td>".$row['ISSN']."</td><td>".$row['FactorValue'].
    "</td><td>".$row['Country']."</td><td>".$row['NoIssuesyear'].
    "</td><td>".$row['FirstIssues']."</td></tr>";
  }
}