我正在开发一个Android应用程序,用户可以根据自己想要的区域查看数据。我在我的php后端代码中获取该区域。我有一个表'help',其中有一列name
。我想要做的是根据使用similar_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();
?>
我得到的输出是整个表数据按names
降序排列多次
答案 0 :(得分:0)
我不知道这是否是最佳答案,但是,我想出了一个解决方案。
<?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();
?>