我坚持这个问题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}
答案 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上发布的结果。
毕竟,这是工作代码:
$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;