首页 > 后端开发 > php教程 > 排序有关问题

排序有关问题

WBOY
发布: 2016-06-13 13:53:11
原创
986 人浏览过

排序问题
是这样的,一个视频有多个播放器图标,每一个图标有对应的播放地址。
在数据库表字段是这样的
vod_pic varchar(200) not null,
vod_reurl varchar(1000) not null,

播放图标用$$$分割,比如 youku$$$tudou
播放地址用$$$分割,比如www.youku.com$$$www.toudou.com

他们存储的信息,是一一对应应的,

说了这么多,现在进入正题


我想在后台写一个功能控制它们在前台页面的显示顺序(前台我是用的循环,输出,所以默认排序是就是数据库里数据存的先后顺序)。

还请大侠们指点一下,应该怎么样做。

因为业务上的要求,比如,我要把tudou排在第一,那么所有视频的带有toudou的图标的,都应该排在第一位。

这个我应该怎样做呢。

我打算用代码在后台操作数据存的位置,来改变顺序的问题。但是这一种可能出错的可能性很大。

想请大侠们指点一下高招。


------解决方案--------------------
你可以多加一个字段用来做排序的啊;
前台使用循环那不是很好搞定吗?
循环的时候添加进一个字段
------解决方案--------------------
写个算法重新排序不就得了

PHP code
<?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>
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板