我有一个基本上包含视频搜索引擎的网站,我有以下代码,它将根据给定的输入条件查询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表上有一个名字“我喜欢吃草莓”的条目
使用我当前的代码,我将得到以下示例结果:
“我喜欢开我的车” “我的车速度超快” “他们吃多了” 等等,相关的结果可能会出现,但最初并不像我希望的那样。
如何让它以更相关的方式显示结果,例如google?
答案 0 :(得分: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