PHP文本型数据库分类排序的实现
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-22
#becfed> <? $sortdownsrc="img/sortdown.gif"; //向下箭头的图片,显示在降序排列的标题旁 $sortupsrc="img/sortup.gif"; //向上箭头的图片,显示在升序排列的标题旁 function printtitle(){ //本函数用于输出标题链接和箭头图片 global $ename,$sorted,$dir,$sortdownsrc,$sortupsrc,$chname; echo "<a href=''#'' onmouseover=''tips(this)'' onmousedown=''sortby(this)'' chname=''$chname'' ename=''$ename''><font color=''#0000FF''>$chname</font></a>"; /*上式输出中给<a>标签自己定义了两个属性“chname”和“ename”。“chname”是标题的中文名,用于显示;“ename”是标题的英文名,用于分类 在上面JavaScript代码中的sortby()函数中就直接利用了它们。这个方法也许值得读者借鉴。 */ if($sorted==$ename){ //如果标题类别就是所排序的类别,则显示箭头图片 echo "<img src=''". ($dir>0?$sortdownsrc:$sortupsrc) ."''>"; //上一行的插入三元运算子的格式在前面已经介绍过。 } } ?> <!--输出标题栏表格--> <? $ename="musicname"; $chname="歌曲名称"; ?> <TD align=center> <? printtitle(); ?></TD> <? $ename="singer"; $chname="歌手"; ?> <TD align=center> <? printtitle(); ?></TD> <? $ename="musicsize"; $chname="大小"; ?> <TD align=center> <? printtitle(); ?></TD> <? $i=1; //以下读取数据库文件夹里的文件数据。 $open=opendir("data/"); //第一次读取 while ($filename=readdir($open)) { if (filesize("data/".$filename)>0){ $filecontent=file("data/".$filename); //将读到的数据划分到各变量中: $msgs_info=explode("|",$filecontent[0]); $musicname=$msgs_info[0]; $singer=$msgs_info[1]; $musicsize=$msgs_info[2]; /* 把要排序的类的值读到$sort_array[]中以便排序,下式用到了双重变量,即把从地址栏传递过来的分类值作为变量。 所以上面三式的变量名必须与各链接标题的“ename”相对应: */ $sort_array[$i]=${$sorted}; //把对应的文件名读到$filename_array[]中,以便和排序后的下标对应。 $filename_array[$i]=$filename; $i++; } } $totalfile=count($sort_array); //文件总数 if($totalfile!=0){ //下面函数对$sort_array[]进行升序或降序排列: $dir>0 ? asort($sort_array) : arsort($sort_array); /* 读取排列后的新顺序: 注意到$sort_array[]的下标是从1开始的,因为该函数不能处理0为下标,在PHP中0认为是FALSE,在for()的条件中会中断循环。 */ $i=1; for(reset($sort_array); $key = key($sort_array); next($sort_array)) { //令 $key_array[] 为排好的数组下标 $key_array[$i] = $key; $i++; } for ($i=1;$i<=$totalfile;$i++){ // 因$key_array[]是排好的数组下标,把它应用到$filename_array[]中就行: //第二次读取文件,按排好的文件读取,并输出: $filecontent=file("data/".$filename_array[$key_array[$i]]); $msgs_info=explode("|",$filecontent[0]); $musicname=$msgs_info[0]; $singer=$msgs_info[1]; $musicsize=$msgs_info[2]; echo "<TR bgColor=#ebf1f7> \n"; echo "<td align=left> $musicname</td> \n" |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于PHP文本型数据库分类排序的实现的所有评论