Maison > Article > développement back-end > 排序有关问题
排序问题
是这样的,一个视频有多个播放器图标,每一个图标有对应的播放地址。
在数据库表字段是这样的
vod_pic varchar(200) not null,
vod_reurl varchar(1000) not null,
播放图标用$$$分割,比如 youku$$$tudou
播放地址用$$$分割,比如www.youku.com$$$www.toudou.com
他们存储的信息,是一一对应应的,
说了这么多,现在进入正题
我想在后台写一个功能控制它们在前台页面的显示顺序(前台我是用的循环,输出,所以默认排序是就是数据库里数据存的先后顺序)。
还请大侠们指点一下,应该怎么样做。
因为业务上的要求,比如,我要把tudou排在第一,那么所有视频的带有toudou的图标的,都应该排在第一位。
这个我应该怎样做呢。
我打算用代码在后台操作数据存的位置,来改变顺序的问题。但是这一种可能出错的可能性很大。
想请大侠们指点一下高招。
------解决方案--------------------
你可以多加一个字段用来做排序的啊;
前台使用循环那不是很好搞定吗?
循环的时候添加进一个字段
------解决方案--------------------
写个算法重新排序不就得了
<?php $a='youku$$$tudou';//vod_pic字段 $b='www.youku.com$$$www.tudou.com';//vod_reurl字段 $a_arr=explode('$$$',$a); $b_arr=explode('$$$',$b); $a_tudouarr=array("tudou"); $b_tudouarr=array("www.tudou.com"); if(in_array("tudou",$a_arr)){ $a_arr = array_merge($a_tudouarr,array_diff($a_arr, $a_tudouarr)); $b_arr = array_merge($b_tudouarr,array_diff($a_arr, $b_tudouarr)); } print_r($a_arr);//排序新的数组,tudou字段在第一个,接来下循环出来就可以了 print_r($b_arr);//排序新的数组,tudou字段在第一个,接来下循环出来就可以了 ?> <br><font color="#e78608">------解决方案--------------------</font><br>我那个算法就是帮你重新排序的呀!跟多少有什么关系!你可以测试一下! <br><font color="#e78608">------解决方案--------------------</font><br>用数据库实现吧。拿出来就是,不是很好吗? <br><font color="#e78608">------解决方案--------------------</font><br>用数据库确实也可以,用替换过滤就可以了 <br><font color="#e78608">------解决方案--------------------</font><br>修改你的数据组织方式!<br>使 vod_pic 和 vod_reurl 一一对应<br>而不是现在这个样子<br><br>你现在的数据组织方式,并不能象你想象的那样能节省数据库的存储空间<br>反而白白的浪费了大量程序与形式的空间和时间<br><br> <div class="clear"> </div>