Maison  >  Article  >  développement back-end  >  排序有关问题

排序有关问题

WBOY
WBOYoriginal
2016-06-13 13:53:11951parcourir

排序问题
是这样的,一个视频有多个播放器图标,每一个图标有对应的播放地址。
在数据库表字段是这样的
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>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn