2012-05-21 78 views
-1

我的搜索功能PHP搜索引擎

 <?php 
    $i=0; 
    $column_name = 'title'; // column to search by 
    $k =$_GET['k']; 
    $terms = explode(" ",$k); 
    //connect before calling mysql_real_escape_string 
    mysql_connect("localhost","",""); 
    mysql_select_db("test"); 
    $query ="SELECT bookid,title,author 
    FROM books WHERE"; 
    foreach ($terms as $each){ 
     $i++; 
     $each = '%' . $each . '%'; // add wildcard 
     $each = mysql_real_escape_string($each); // prevent sql injection 
     if($i==1) 
      $query .= " $column_name LIKE '$each' "; 
     else 
      $query .= " OR $column_name LIKE '$each' "; 

    } 

    echo 'QUERY: ' . $query; 

    $query = mysql_query($query) OR DIE(mysql_error()); 

//Code below is for using the relationships table assuming you have a column name id that 
//references to the relationships table. Also, you should add a index on the column id. 

$results = ""; 

while($row = mysql_fetch_array($query)) { 
    $results .= '<li> 
       <a href="book-relationships.php?id='.$row['id'].'">'.$row['title'].' author: '.$row['author'].'</a> 
       </li>'; 
} 

$results = '<ul>' . $results . '</ul>'; 

echo $results; 

我需要帮助连接一个数据库与其他搜索时,此数据库列出所有都拿出了在搜索图书,然后将它们与其他表进行比较,称为关系并打印出与搜索到的书籍有关系的书籍的标题。

当搜索运行这是在浏览器中

QUERY: SELECT id,title,author FROM books WHERE title LIKE '%jarrads%' Unknown column 'id' in 'field list' 

任何helpy,将不胜感激产生我100%粘

模式

书籍 - BOOKID,标题,作者,年出版,出版者..... 关系 - relationshipid,bookOne,bookTwo,relationship,relationshiplikes,relationsdislikes

bookOne和bookTwo,涉及到BOOKID

+0

你能与架构你的书籍表更新您的文章? –

+0

您需要告诉我们表的数据库模式是什么样子。 – Jeshurun

+0

你可以发表你的表'书'的列 –

回答

0

您有一个错误在您的查询,作为错误消息指出:

Unknown column 'id' in 'field list'

检查表books为有效字段列表。实现这一目标的一个方法是运行下面的查询:

SHOW CREATE TABLE books;

+0

是的,只是修复它 – user1393064

+0

甚至一个简单的desc书籍; – Jeshurun