我的这张桌子上有歌曲标题,艺术家等。
if(isset($_POST["search_value"]) && $_POST["search_value"] != null) {
$search_value = $db->mysqli->real_escape_string($_POST["search_value"]);
//hiq apostrofet
//hiq pikat
$search = array("\'", ".", " ");
$replace = array("", "", " +");
$search_value = str_replace($search, $replace, $search_value);
$query = "
select * from `music`
where
match(`search_tags`) against ('+$search_value*' IN BOOLEAN MODE)
order by views desc
limit 1
";
//+ vihet per t paren
$run_query = $db->mysqli->query($query);
$result = $run_query->fetch_assoc();
if($run_query->num_rows > 0)
echo json_encode($result);
}
在大多数情况下它可以正常工作,但对其他一些情况不起作用。
两个主要问题是:
a)era isterfi money per money
b)era istrefi e dehun
当我使用此查询进行搜索时:era e dehun
它会显示era istrefi money per money
作为结果。为什么会这样? Are single chars a problem?
和2。
如果我有一首带有search_tags:23 miley cyrus
的歌曲,并且我使用23
作为搜索查询,则表明我没有结果。如果我以前搜索麦莉,一切都会正常。