繁体   English   中英

$ sql = mysql_query(“ SELECT * FROM书籍,其中有标签,例如'%$ _ GET [term]%'LIMIT 0,$ _ GET [results]”);

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

我正在尝试制作一个Like搜索引擎,这对我的网站来说很简单。 这是我正在使用的代码:

  $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 />";


}

但是,当它搜索时,它只会在我的标签中寻找一个词。 有人对如何搜索我的所有标签有什么好主意吗?

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

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

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

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

用这个:-

$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).");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM