请见上图,第一张图是后台的php程序,第二张图是前台的排序,现在是根据id进行排序的,但是我现在是想根据title的后三位进行排序,也就是按截取title中的数字部分进行排序,请问该如何实现啊?(ps:不懂php,还望各位不吝赐教,越简单越好!)

解决方案 »

  1.   

    $sql = "SELECT id, title, content, image, cat_id, add_time, click, description FROM " . $dou->table('zyzfw') . $where . " ORDER BY id DESC" . $limit;此为上图一的  代码
      

  2.   


    替换代码里的后三位倒序从大到小:
     ORDER BY right(title,3) DESC后三位正序从小到大:
     ORDER BY right(title,3) ASC 
      

  3.   

    你把数据全部取出来  生成一个关联数组
    格式为[0=>[信息1集合],2=>[信息二集合]];
    然后遍历这个数组  用substr()函数截取title字段最后三位  然后用截取后的字段做为键重新生成数组
    生成后的大致为[111=>[信息1集合],112=>[信息二集合]];
    然后用ksort()排序即可 注意 数组中的键不能重复  所以生成时要 判断该键是否存在  如果存在(即出现两人票数一致的情况) 给键拼接其它字符如[‘111’=>[信息1集合],‘112a’=>[信息2集合],‘112b’=>[信息3集合]];