快速业务通道

PHP文本型数据库分类排序的实现

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

在PHP编程中,如果你使用文本型数据库,也许会为它的分类排序问题感到头痛。下面小阳介绍一下如何运用PHP结合JavaScript脚本实现这个功能:如下图,当用户点击相应的标题类别时,如果该类别与原类别不同,则按相应类别相同的升降序排列;当点击类别与原类别相同,则按该类别与原来相反的顺序排列。(即假如图中把鼠标放至“歌手”标题,将提示“按[歌手][升序]排列”。)

PHP文本型数据库分类排序的实现

例子中文本数据库的格式为:每行的信息都各保存在一个文件下,文件内容格式为“歌曲名称|歌手|大小”。例如文件“找一个字代替.txt”的内容是“找一个字代替|卓依婷|48554”,每个文件都只有一行,且保存在“data”目录下。

分类排序的思路是:将要排序的该类别所在信息读取到$sort_array[]数组中,对$sort_array[]进行排列,得到新排列的下标的数组$key_array[],再按下标的数组依次把文件读出来即可。

下面我们编写这个PHP文件。

<?
//给分类排序予默认值:
if (empty($sorted)) $sorted="musicname"; //排序类别
if (empty($dir)) $dir=1; //升降序
?>
<HTML><HEAD>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<TITLE>歌曲列表</TITLE>
<style TYPE="text/css">
<!--
td{font-size: 9pt}
-->
</style>
</HEAD>
<BODY>
<!-- 以下是JavaScript脚本,结合PHP而成 -->
<script language="javascript">
sorted="<?echo $sorted;?>"; //读取地址栏的类别信息
dir=parseInt("<?echo $dir;?>"); //读取地址栏的升降序信息
function sortby(obj){ //本函数用于指定点击的标题栏的链接地址,传递分类排序信息
sorted==obj.ename ? mydir=-dir : mydir=dir; //如果排序类别就是所点击的类别,则改变升降序
obj.href=location.pathname+"?sorted="+obj.ename+"&dir="+mydir; //指定链接地址
}
function tips(obj){ //本函数定义链接和状态栏的提示信息
sorted==obj.ename ? mydir=-dir:mydir=dir;
obj.href="sortby: 按["+obj.chname+"]["+ (mydir>0?"降序":"升序") +"]排列";
obj.title="按["+obj.chname+"]["+ (mydir>0?"降序":"升序") +"]排列";
/* 注意上两式的格式。首先第一行中只是只是指定该链接的路径为“sortby: 按……排列”,但状态栏中却没有出现“http://”等字样。
  实际上只要链接以不含空格和特殊字符的英文字串加“:”号,浏览器即认为这不是相对路径,状态栏将按链接路径显示(即使它是不合法的)。
其次上两式右边都插入了一个三元运算子(“?:”),单独看来括号里的语句是不合JavaScript语法的。这种句式比较少见。
当然你也可以写成if...else..的格式。
下面的PHP程序中小阳也用了一句类似的格式,供读者参考。
*/
}
</script>
<TABLE align=center bgColor="#0099CC" border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR>
<TD height="20" align="center" bgColor=#799ADD><font color="#FFFFFF">歌曲列表</font></TD>
</TR>
<TR>
<TD> <TABLE border=0 cellPadding=1 cellSpacing=1 width="100%">
<TBODY>
<TR bgColor=

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号