排序通过while循环获取的PHP数组

时间:2018-10-01 10:32:43

标签: php arrays sorting

我正在使用mysql表中的php while循环填充选择选项。以下是php代码:

<?php
session_start();
$database = $_POST['folder'];
include('connect.php');
$connect = mysqli_connect($hostname, $username, $password,$database );

if ($connect->connect_error) {
    die("Connection failed: " . $connect->connect_error);
}

$result = $connect->query("select name from treeview where parent_id = 1;");

?>

<option value="">Select Location</option>
<?php while($row1 = mysqli_fetch_array($result)):;?>
<option value="<?php echo $row1['name'];?>"><?php echo $row1['name'];?></option>

<?php endwhile;?>

这正常工作,但所提取的项目未按字母顺序排序。我知道这可能是微不足道的,但我做对了。我尝试了以下方法:

选项1

<?php while($row1 = mysqli_fetch_array($result)):;
    $row1 = sort($row1);
?>
    <option value="<?php echo $row1['name'];?>"><?php echo $row1['name'];?></option>

选项2:

<?php while($row1 = mysqli_fetch_array($result)):;?>
    <option value="<?php echo sort($row1['name']);?>"><?php echo sort($row1['name']);?></option>

两个都不起作用。

2 个答案:

答案 0 :(得分:1)

您需要更改SQL查询并使用ORDER BY

在此处查看link

答案 1 :(得分:0)

您正在尝试对一行进行排序,而不是对行进行排序。对所有行进行排序将需要您获取所有的行,然后对其进行排序。恕我直言,一种更简单的方法是在查询本身中对它们进行排序:

$result = $connect->query("select name from treeview where parent_id = 1 ORDER BY 1;");
# Here ------------------------------------------------------------------^