请见上图,第一张图是后台的php程序,第二张图是前台的排序,现在是根据id进行排序的,但是我现在是想根据title的后三位进行排序,也就是按截取title中的数字部分进行排序,请问该如何实现啊?(ps:不懂php,还望各位不吝赐教,越简单越好! )
3 个解决方案
#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
你把数据全部取出来 生成一个关联数组
格式为
然后遍历这个数组 用substr()函数截取title字段最后三位 然后用截取后的字段做为键重新生成数组
生成后的大致为
然后用ksort()排序即可
注意 数组中的键不能重复 所以生成时要 判断该键是否存在 如果存在(即出现两人票数一致的情况) 给键拼接其它字符
如
格式为
[0=>[信息1集合],2=>[信息二集合]];
然后遍历这个数组 用substr()函数截取title字段最后三位 然后用截取后的字段做为键重新生成数组
生成后的大致为
[111=>[信息1集合],112=>[信息二集合]];
然后用ksort()排序即可
注意 数组中的键不能重复 所以生成时要 判断该键是否存在 如果存在(即出现两人票数一致的情况) 给键拼接其它字符
如
[‘111’=>[信息1集合],‘112a’=>[信息2集合],‘112b’=>[信息3集合]];
#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
你把数据全部取出来 生成一个关联数组
格式为
然后遍历这个数组 用substr()函数截取title字段最后三位 然后用截取后的字段做为键重新生成数组
生成后的大致为
然后用ksort()排序即可
注意 数组中的键不能重复 所以生成时要 判断该键是否存在 如果存在(即出现两人票数一致的情况) 给键拼接其它字符
如
格式为
[0=>[信息1集合],2=>[信息二集合]];
然后遍历这个数组 用substr()函数截取title字段最后三位 然后用截取后的字段做为键重新生成数组
生成后的大致为
[111=>[信息1集合],112=>[信息二集合]];
然后用ksort()排序即可
注意 数组中的键不能重复 所以生成时要 判断该键是否存在 如果存在(即出现两人票数一致的情况) 给键拼接其它字符
如
[‘111’=>[信息1集合],‘112a’=>[信息2集合],‘112b’=>[信息3集合]];