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