搜索引擎PHP返回错误

时间:2013-09-19 05:17:36

标签: php mysql

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("database360");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Search Engine</title>
</head>

<body>

<center>
<h1 style="color:#069; font-size:36px;">TEST ENGINEenter code here</h1>

<form action="./result.php" method="get">
        <input type="text" name="input" size="50" <?php echo $_GET['input']; ?> />
        <input type="submit" value="search"/>
</form>
</center>

<hr/>

<?php 

$input = $_GET['input'];
$terms = explode(" ", $input);
$query = "SELECT * FROM search WHERE";

foreach ($terms as $each){
    $i++;
    if ($i == 1)
       $query .= "keywords LIKE '%each%' ";
    else
       $query .= "OR keywords LIKE '%each%' ";
}

//connect to database
mysql_connect("localhost", "root", "");
mysql_select_db("database360");
$query1 = mysql_query($query);
$numrows = mysql_num_rows($query1);
if ($numrows > 0){
    while ($rows=mysqlfetch_assoc($query1)){
        $id = $row['id'];
        $title = $row['title'];
        $description = $row['description'];
        $keywords = $row['keyword'];
        $link = $row['link'];

        echo "<h2><a href='$link'>$title</h2>
        $description<br></br>";

    }

}
else echo "No results found for \"<b>$input</b>\"";
//disconnect
mysql_close();
?>
</body>
</html>

错误信息是:

  

注意:未定义的变量:我在C:\ xampp \ htdocs \ SEARCH \ result.php上   第33行

     

警告:mysql_num_rows()要求参数1为resource,boolean   在第46行的C:\ xampp \ htdocs \ SEARCH \ result.php中给出未找到结果   用于“联系”

1 个答案:

答案 0 :(得分:1)

在第33行,您有$i++,但尚未初始化$i

我希望您的MySQL查询中存在语法错误。试试这个:

$query1 = mysql_query($query) or die(mysql_error()); 

将显示您必须修复的SQL错误。

更多:您的SQL容易受到注入攻击。确保您正确地转义输入,并且不要使用mysql() - 它已被弃用。请改用mysqliPDO