$ sql = mysql_query(“SELECT * FROM books WHERE tags LIKE'%$ _ GET [term]%'LIMIT 0,$ _ GET [results]”);

时间:2013-05-29 17:34:20

标签: mysql arrays search-engine

我试图制作一个像搜索引擎,这对我的网站来说很简单。以下是我使用的代码:

  $sql = mysql_query("SELECT * FROM books WHERE tags LIKE '%$_GET[term]%' LIMIT 0,$_GET
  [results]");

while($ser = mysql_fetch_array($sql)) {
    echo $ser['title']."<br />";


}

但是当它搜索时,它只会在我的标签中查找单个Term。关于如何搜索我的所有标签,任何人都有任何好的想法吗?

3 个答案:

答案 0 :(得分:0)

$sql = mysql_query("SELECT * FROM books WHERE tags LIKE '%$_GET[term]%'");

从查询中删除限制,您应该从查询中获取所有匹配的行。

答案 1 :(得分:0)

我强烈建议不要直接使用来自用户的值来解析它,以保护自己免受SQL注入

尝试删除限制,然后检查它是否给出相同的结果?

答案 2 :(得分:0)

使用: -

$keywords =$_GET[term];
$keywords = explode('delimiter', $keyword);
$searchTermKeywords = array();
foreach ($keywords as $word) 
{

$searchTermKeywords[] = "tags LIKE '%$word%'";

}

$result= mysql_query("SELECT * FROM books WHERE ".implode(' AND ', $searchTermKeywords).");