2017-07-07 37 views
0

我正在开发一个android应用程序,用户可以根据他们想要的区域查看数据。我在我的php后端代码中获取该区域。我有一个表“帮助”,其中有一列name。我想要做的是根据百分比匹配使用similar_text或类似的用户输入和表name数据按降序排序整个表。我不知道该怎么做。这是我得到了多少。非列元素排序mysql表

<?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(); 
?> 

我得到的输出是按降序排列

回答

0

我不知道这是否是最佳的答案与否,但整个表数据进行多次顺序由names,我想出了一个解。

<?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(); 
?>