1

我有一个基本上包含在视频搜索引擎上的网站,我有以下代码可以查询 mysql 以获取给定的输入条件:

$search=htmlspecialchars($_GET['load']); 
$say=mysql_query("SELECT * FROM madvideo WHERE MATCH (baslik) AGAINST ('*$search*' IN BOOLEAN MODE)"); 

然后我有以下代码将显示结果:

     $katala=mysql_query("SELECT * FROM madvideo WHERE MATCH (baslik) AGAINST ('*$search*' IN BOOLEAN MODE) order by id asc limit $s,$perpage");
            $i=0;
                    while ($sea=mysql_fetch_array($katala))  { 
            $i++;

$idd=$sea['id']; $seoo=$sea['seo']; $baslikk=$sea['baslik']; $resimm=$sea['resim']; $suree=$sea['sure'];
 $izlenmee=$sea['izlenme']; $tarihh=$sea['tarih']; $katt=$sea['kat'];

让我试着解释一下这有什么问题。假设您在我的网站上搜索“我喜欢吃草莓”

假设我在 mysql 表上有一个同名的条目“我喜欢吃草莓”

使用我当前的代码,我将得到以下示例结果:

“我喜欢开我的车”“我的车超级快”“他们吃得太多”等等,相关的结果可能会出现,但一开始并不像我想的那样。

如何让它以更相关的方式显示结果,例如谷歌?

4

1 回答 1

2

将搜索词分解为单词,以便您可以使用like表达式动态地按条件构建顺序。由于 mysql 中逻辑表达式的结果是 1 或 0,因此您可以添加这些表达式。

SELECT * 
FROM madvideo 
WHERE MATCH (baslik) AGAINST ('*$search*' IN BOOLEAN MODE) 
order by 
    (baslik like '%$word1%') 
    + (baslik like '%word2%')
    + (baslik like '%word3%')
    desc
limit $s,$perpage
于 2012-10-09T12:30:44.747 回答