Php 按非列元素对mysql表进行排序
我正在开发一个android应用程序,用户可以根据他们想要的区域查看数据。我在php后端代码中得到了这个区域。我有一个表“help”,其中有一列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
名称
。我想做的是根据百分比匹配对整个表进行排序,使用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();
?>