本帖最后由 carsoo 于 2010-01-09 02:13 编辑
大神不敢当。你的意思大概是想把某些指定的信息显示在最前面,然后按热度排序吧。如果我没理解错~
可以说下解决思路
理论:页面做list动作时,更改默认排序方式。(在不更改后台的前提下,可利用ss系统提供的审核等级[grade DESC]来排序,如:审核等级高在前。)按审核等级排序后会,再进行查看数[viewnum DESC]排序,多者优先。
实践:$_GET['mo_order'] = !empty($_GET['mo_order']) ? intval($_GET['mo_order']) : 0;
等号前面的呢是 取得传递来的参数[variable],等号与问号之间的呢 是赋值条件,如果为真,则把问号与冒号之的值给等号前面的,如果为假 就把冒号后面的给等号前面那个家伙。
举个简单例子:$酒杯 = !empty($酒杯) ? intval(白酒) :白酒; 就是说先看下你的酒杯,有没有酒,如果有看下是不是白酒,不是白酒要换成白酒。如果酒杯里没酒那直接倒白酒。只喝白酒。
先不管酒了 一会喝多了。看上面代码,注意那个 0 。没有搜索条件时(刚刚打开页面时)$_GET['mo_order'] 这个是空的,(没有酒)所以直接把这个 0 给 $_GET['mo_order'] 他了。
下面说说这个 0 是干嘛的。
这个0是m.php 页的一只队伍的成员。 看下面 每个数字后面都有对应的“酒”
'0' => 'i.itemid DESC', //按id倒序
'1' => 'i.dateline DESC', //按时间倒序
'2' => 'i.dateline ASC', //按时间正序
'3' => 'i.viewnum DESC', //按点击数倒序
'4' => 'i.viewnum ASC', //按点击数正序
'5' => 'i.rates DESC', //按评分倒序
'6' => 'i.rates ASC', //按评分正序
'7' => 'i.grade DESC', //按审核倒序
'8' => 'i.grade ASC', //按审核正序
现在大概知道把那个 0 换成什么了吧? 恩,换成7 就是 按审核等级 高到低排序了。
至于 按7排序完成后,再按3排 自己研究吧。 |