Php 按非列元素对mysql表进行排序

Php 按非列元素对mysql表进行排序,php,mysql,Php,Mysql,我正在开发一个android应用程序,用户可以根据他们想要的区域查看数据。我在php后端代码中得到了这个区域。我有一个表“help”,其中有一列名称。我想做的是根据百分比匹配对整个表进行排序,使用similor\u text或用户输入和表name数据之间的类似内容,按降序排列。我不知道怎么做。这就是我所做的 <?php require_once "Database/DB_Connect.php"; $db = new DB_Connect(); $db_conn = $db->con

我正在开发一个android应用程序,用户可以根据他们想要的区域查看数据。我在php后端代码中得到了这个区域。我有一个表“help”,其中有一列
名称
。我想做的是根据百分比匹配对整个表进行排序,使用
similor\u text
或用户输入和表
name
数据之间的类似内容,按降序排列。我不知道怎么做。这就是我所做的

<?php
require_once "Database/DB_Connect.php";
$db = new DB_Connect();
$db_conn = $db->connect();
$area=$_REQUEST['area']
$name1=array();
$query="SELECT `name` from `help`";
$result=mysqli_query($db_conn,$query);
while ($row=$result->fetch_assoc()) {
    $name=$row['name'];
    similar_text($area,$name,$percentage);
    $query1="SELECT * FROM `help` ORDER BY '$percentage' DESC ";
    $result1=mysqli_query($db_conn,$query1);
    while($row1=$result1->fetch_assoc()){
        $name1[]=$row1;
    }
}   
echo json_encode($name1);
$db_conn->close();
?>

我不知道这是否是最佳答案,但我想出了一个解决方案

<?php
require_once "Database/DB_Connect.php";
$db = new DB_Connect();
$db_conn = $db->connect();
$name1=array();
$id=array();
$area = $_REQUEST['area'];
$query="SELECT * FROM `help`";
$result=mysqli_query($db_conn,$query);
while ($row=mysqli_fetch_array($result)) {
    $name1[]=$row['name'];
    $id[]=$row['id'];
} 
$sorted_arr=array();
$sorted_id=array();
for($i=0; $i<count($name1); $i++) {
   $temp_arr[$i] = similar_text($search, $name1[$i]);
}
arsort($temp_arr);
foreach($temp_arr as $k => $v) {
    $sorted_arr[] = $name1[$k];
    $sorted_id[]=$id[$k];
}
$data = [];
for($i=0; $i<count($name1); $i++) {
    $sql="SELECT * FROM `help` WHERE `id`='$sorted_id[$i]' ";
    $result = $db_conn->query($sql);
    $data[]=$result->fetch_assoc();   
}
echo json_encode($data);
$db_conn->close();
?>