Php MySQL搜索太简单了;松散的;

Php MySQL搜索太简单了;松散的;,php,mysql,search,Php,Mysql,Search,好的,所以我做了一个网站,只是为了我正在做的一个项目。在这个网站上,我有一个数据库,上面有几篇文章,我使用以下代码进行查询: <?php if (!empty($_REQUEST['term'])) { $term = mysql_real_escape_string($_REQUEST['term']); $sql = "SELECT * FROM articles WHERE title LIKE '%".$term."%'"; $r_query

好的,所以我做了一个网站,只是为了我正在做的一个项目。在这个网站上,我有一个数据库,上面有几篇文章,我使用以下代码进行查询:

<?php
if (!empty($_REQUEST['term'])) {

    $term = mysql_real_escape_string($_REQUEST['term']);     

    $sql = "SELECT * FROM articles WHERE title LIKE '%".$term."%'"; 
    $r_query = mysql_query($sql);

    while ($row = mysql_fetch_array($r_query)){ 
        echo $row['title'];
        echo $row['summary'];        
        echo $row['content']; 
        echo $row['publicationDate']; 

    }  

}
?>


问题是搜索有点太“松散”,网站连接的数据库有很多文章。我不喜欢的是,如果我在搜索框中搜索字母“A”,它会出现字母“A”出现在任何文章标题中的任何实例。因此,澳大利亚、奥地利、阿富汗甚至厄瓜多尔都没有为字母“A”写文章。这有点令人沮丧。您能帮助我吗?

您可以尝试强制它成为字符串或单词的开头:

$sql = "SELECT * FROM articles WHERE title LIKE '% ".$term."%' OR title LIKE '".$term."%'";

移除第一个%。。。。“从标题类似于“$term.”%“的文章中选择*。”这不是PHP搜索,而是SQL查询。
$SQL=“从标题类似于$term的文章中选择*。”"; 这并没有真正回答问题,更多的是一个评论,它是不正确的。在或之后是语法错误且
或。。类似于“term%”
不会在
之后执行任何操作,类似于“%term%”
。使用此代码,它只接受以该术语开头的单词或字符串,因此结果会更准确?第二个或。。比如“term%”正在做一些事情,因为在第一次检查中,该项前面有空格。顺便说一句,我添加了LIKE after OR(只是一个简单的疏忽)。啊,我看到你有额外的空间。仍然没有回答这个问题,因为这不是他们问的问题,他们问的问题仍然很不清楚。但很明显,他们不想要以“A”开头的东西。我猜是你的作品。它减少了大量显示的结果。如果你需要更多的合格结果,你应该考虑使用像弹性搜索或类似的搜索系统。