PHP中如何使用MySQL的ORDER BY子句排序

来源:青灯夜游 发布时间:2019-01-16 14:57:04 阅读量:926

在MySQL中,ORDER BY子句可与SELECT语句一起使用,以便按顺序对特定字段的数据进行排序;它可以按升序或降序对结果集进行排序。下面我们来带大家简单了解一下在PHP中使用MySQL的ORDER BY子句排序的基本方法,希望对大家有所帮助。

基本语法

ORDER BY子句的基本语法:

1

SELECT  字段名 FROM 表名 ORDER BY 字段名 ASC/DESC(升序或降序)

注:在ORDER BY子句中ASC是默认的,可省略,表示升序。【相关视频教程推荐:MySQL视频教程

使用示例

下面是一个数据表"demo",其中包含三个字段,分别为:name、age、sex。我们通过简单的示例来介绍ORDER BY子句的使用。

2.jpg

1、简单的按照age字段升序排序

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<?php

header("content-type:text/html;charset=utf-8");

$link = mysqli_connect("localhost", "root", "", "mydb"); //连接数据库

mysqli_set_charset($link,"utf8");

if($link === false){

    die("ERROR: Could not connect. " 

                . mysqli_connect_error());

}

   

$sql = "SELECT * FROM demo ORDER BY age";

if($res = mysqli_query($link, $sql)){

    if(mysqli_num_rows($res) > 0){

        echo "<table>";

            echo "<tr>";

            echo "<th>name</th>";

            echo "<th>age</th>";

            echo "<th>sex</th>";

            echo "</tr>";

        while($row = mysqli_fetch_array($res)){

            echo "<tr>";

                echo "<td>" . $row['name'] . "</td>";

                echo "<td>" . $row['age'] . "</td>";

                echo "<td>" . $row['sex'] . "</td>";

            echo "</tr>";

        }

        echo "</table>";

        mysqli_free_result($res);

    } else{

        echo "找不到匹配的记录。";

    }

} else{

    echo "错误:无法执行 $sql. " . mysqli_error($link);

}

mysqli_close($link);

?>

输出:

代码说明:

“res”变量存储函数mysql_query()返回的数据。

每次调用mysqli_fetch_array()时,它都会从res()集返回下一行。

while循环用于遍历表“demo”的所有行。

2、使用面向对象方法通过ORDER BY子句降序排序

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<?php

header("content-type:text/html;charset=utf-8");

$link = new mysqli("localhost", "root", "", "mydb");

mysqli_set_charset($link,"utf8");

if($link === false){

    die("ERROR: Could not connect. " 

                . mysqli_connect_error());

}

   

$sql = "SELECT * FROM demo ORDER BY age DESC";

if($res = mysqli_query($link, $sql)){

    if(mysqli_num_rows($res) > 0){

        echo "<table>";

            echo "<tr>";

            echo "<th>name</th>";

            echo "<th>age</th>";

            echo "<th>sex</th>";

            echo "</tr>";

        while($row = mysqli_fetch_array($res)){

            echo "<tr>";

                echo "<td>" . $row['name'] . "</td>";

                echo "<td>" . $row['age'] . "</td>";

                echo "<td>" . $row['sex'] . "</td>";

            echo "</tr>";

        }

        echo "</table>";

        mysqli_free_result($res);

    } else{

        echo "找不到匹配的记录。";

    }

} else{

    echo "错误:无法执行 $sql. "  . mysqli_error($link);

}

mysqli_close($link);

?>

输出:


标签: PHP
分享:
评论:
你还没有登录,请先