Php 按相关性排序
到目前为止,这允许我搜索一个或多个字段,如姓氏和/或出生日期。我想做的也是按相关性排序,因为它目前按主ID排序(例如:如果我搜索smith,我希望smith排在klingensmith之前) 我在这方面真的是个新手,走到这一步需要咬牙切齿,所以请像我5岁一样解释。我已经试过了:Php 按相关性排序,php,mysql,Php,Mysql,到目前为止,这允许我搜索一个或多个字段,如姓氏和/或出生日期。我想做的也是按相关性排序,因为它目前按主ID排序(例如:如果我搜索smith,我希望smith排在klingensmith之前) 我在这方面真的是个新手,走到这一步需要咬牙切齿,所以请像我5岁一样解释。我已经试过了: $fields = array('surname', 'firstname', 'maiden', 'birth', 'death', 'obittext'); $conditions = array(); forea
$fields = array('surname', 'firstname', 'maiden', 'birth', 'death', 'obittext'); $conditions = array();
foreach($fields as $field){
if(isset($_POST[$field]) && $_POST[$field] != '') {
$conditions[] = "`$field` LIKE '%" . $_POST[$field] . "%'";
}
}
$sql = "SELECT * FROM obits ";
if(count($conditions) > 0) {
$sql .= "WHERE " . implode (' AND ', $conditions);
}
$result = mysqli_query($con, $sql);
它刚刚把它弄坏了。我怀疑我需要添加另一个条件,但我不知道是什么或在哪里。非常感谢,并向所有理解这些内容的人表示敬意。您是否尝试过“按姓氏顺序描述”而不是“按相关性顺序描述”?这确实产生了不同的结果,并且没有破坏它。如果有人只使用一个搜索字段,但它对多字段搜索效果很好,我不太确定这是否是我想要的结果。然后尝试使用“或”而不是“和”;)如果有人在搜索smith和1910,我想,我不确定我说的是否正确,我希望它按搜索者使用的字段排序搜索。因此,如果他们使用姓氏,请按姓氏排序。如果他们使用的是名字,按名字排序。你试过“按名字排序,姓氏排序”而不是“按相关性排序”吗?这确实产生了不同的结果,并且没有破坏它。如果有人只使用一个搜索字段,但它对多字段搜索效果很好,我不太确定这是否是我想要的结果。然后尝试使用“或”而不是“和”;)如果有人在搜索smith和1910,我想,我不确定我说的是否正确,我希望它按搜索者使用的字段排序搜索。因此,如果他们使用姓氏,请按姓氏排序。如果他们用的是第一个名字,按这个顺序排列。
$result = mysqli_query($con, $sql, ' ORDER BY relevance DESC ');