频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

8.3.7 数据列表的排序

作者: 叶新伟等编著 出处:电子工业出版社  2008-06-02 17:00    砖    好    评论   进入论坛
阅读提示:《PHP+Ajax Web 2.0编程技术与项目开发大全》第8章主要讲的是PHP和MySQL的应用,在网站项目中,网站的数据是存放在数据库中的。PHP+MySQL是一个非常好的网站解决方案,具有非常好的性能和安全性。在PHP网站中,程序常常进行数据库访问,数据库访问是通过SQL语句完成的。本章讲解PHP对MySQL数据库进行连接、表单使用、数据查询等方面的内容,本节为您介绍的是数据列表的排序。

8.3.7  数据列表的排序

在显示数据列表时,通常是在SQL语句中实现固定排序的。本节讲述这种在列表中实现动态排序的方法,用户单击列表上的提示以后,可以使列表中的数据按照这一字段进行排序。在这个程序中,重点内容是排序的算法和分页链接的动态生成。网页的代码如下所示。

代码8-23  查找与排序(\源文件\08\list.php)

 1. <html>
2.    <head>
3.    <title>班级管理列表</title>
4.  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5.   </head>
6.   <body>
7.   <div align="center">
8.  班级管理列表
9.  </div>
10.   <?php
11.   require_once("conn.php");      //包含数据库连接文件
12. $sql = "select * from tb_class order by  ";  //开始构造SQL语句
13. $orderby = @$_GET['orderby'];     //取得URL中的“orderby”并赋值
14. switch ($orderby)        //对$orderby进行switch判断
15. {
16.  case "":         //对不同的值构造不同的SQL语句
17.   $sql = $sql . " id "; break;
18.  case "id" :
19.   $sql = $sql . " id ";break;
20.  case "iddesc" :
21.   $sql = $sql . " id desc  ";break;
22.  case "class" :
23.   $sql = $sql . " class   ";break;
24.  case "classdesc" :
25.   $sql = $sql . " class desc    ";break;
26. }
27. $sql = $sql . " limit 8 ";      //最多返回多少条结果
28. $rs=  mysql_query($sql)  ;

这一段代码,主要是根据URL中不同的“orderby”参数生成不同的排序方式。主要的代码功能如下所示。

代码从第12行开始,构造SQL语句。这个SQL语句不是一次写出的,而是根据不同的参数进行不同的构造。

第13行用$_GET获取URL的orderby参数,赋值给$orderby。

第14行对$orderby进行switch语句条件判断,根据不同的$orderby的值,生成不同的SQL语句。这里是合并不同的排序字段。第16行和第17行,是在$orderby为空时,按照id进行排序。每一种匹配后面需要有一个break语句中断后面语句的执行。

第27行,SQL语句后面加上“ limit 8”,表示最多返回8条记录。第28行进行数据查询,返回的记录集赋值给$rs。

29. echo "<table width=300 border=1 align=center>";  //开始输出表格
30. echo "<tr><td><a href=?orderby=";    //输出排序链接
31. if (@$_GET['orderby']=="id")     //根据$orderby参数生成不同的链接
32.  echo "iddesc";
33. else
34.  echo "id";
35. echo ">ID</a></td><td>";
36. echo "<a href=?orderby=";
37. if(@$_GET['orderby']=="class")     //根据$orderby参数生成不同的链接
38.  echo "classdesc";       //对URL中的orderby进行不同的赋值
39. else
40.  echo "class";
41. echo ">班级名称</a></td></tr>";

这一段代码是在数据列表中根据不同的$orderby变量,生成不同的提示链接,实现排序功能。代码的主要功能如下所示。

第29行开始输出表格。第30行开始输出一个链接。根据$orderby不同的值,对URL中的orderby进行不同的赋值。这样,当每次单击这个链接时,会更改URL中的orderby的值。

第37行,用另一个if判断语句,生成“班级名称”的排序链接。

42. while($row=mysql_fetch_array($rs)) 
43. {
44.  echo "<tr>";
45.  echo "<td>". $row['id'] ."</td>";
46.  echo "<td>". $row['class'] ." </td>";
47.  echo "</tr>";
48. }
49. echo "</table>";
50. ?>
51. </body>
52. </html>

在这段代码中,用mysql_fetch_array函数,对记录集中的数据依次取得一行,返回数组赋值给$row。然后$row作为while循环的条件,循环生成表格的行和列。

运行这个网页,效果如图8.7所示。在网页中,单击“ID”和“班级名称”两个链接时,可以实现数据列表排序的改变,如图8.8所示。

 
图8.7  数据列表
 
图8.8  数据列表中的排序
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节
专题
Sun以10亿美元并购开源数据库厂商MySQL
MySQL5.0新品推介
MySQL基础与配置
PHP+APACHE+MYSQL下载汇总
MySQL数据库备份
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
华为员工自杀频频拷问企业文化
华为员工自杀频频拷问企业文化
网络工程师的职业规划与生存现状
网络工程师的职业规划与生存..
充电计划之热门IT认证官方资料汇总
充电计划之热门IT认证官方资..
· 充电计划之热门IT认证..
· 勇闯IT培训黑色围城
· 如何有效防御SQL注入攻..
· 2008年上半年全国软考..
· 选择适合自己的IT认证
· IPv6协议--拓展网络无..
· 了解统一威胁管理(UTM)..
· 调查:十大发现 解秘技..
· 技术人求职简历完备手册
· Vista SP1对决XP SP3
· 运营商封堵ADSL共享 中..
· LAMP技术精解
· PHP开发应用手册
· 解析35岁技术人的价值..
· 汶川大地震 IT技术人在..
· SOA 面向服务架构
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· Apache技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
· 了解统一威胁管理(UTM)..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· RAID——磁盘阵列基础
· 企业数据恢复指南
· 路由器设置与口令恢复
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· 反垃圾邮件技术应用
· 访问控制列表(ACL)介绍
· PHP开发应用手册