在搜索引擎中搜索SQL中的多个单词?

时间:2016-04-08 22:54:39

标签: php mysql search

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

$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}

2 个答案:

答案 0 :(得分:0)

对于你有一个:

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

何时应该

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

答案 1 :(得分:0)

弗雷德写的,有一个错字。您正在填充$rows变量,但随后访问$row。此外,不需要在循环之前将$ rows定义为空数组。我也看到了&#34; H&#34;最后,但这是(我猜)只是在stackoverflow上发布的结果。

毕竟,这是工作代码:

&#13;
&#13;
$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>";
  }
}
&#13;
&#13;
&#13;