Browse Source

优化排序

adminstyle
叙述、别离 2 days ago
parent
commit
53e1df2e6c
2 changed files with 32 additions and 12 deletions
  1. +28
    -8
      src/system/archive/sglistview.class.php
  2. +4
    -4
      src/system/archive/specview.class.php

+ 28
- 8
src/system/archive/sglistview.class.php View File

@@ -360,12 +360,22 @@ class SgListView
if ($orderWay == '') $orderWay = 'desc';
//排序方式
$ordersql = '';
if ($orderby == 'senddate' || $orderby == 'id') {
$ordersql = " ORDER BY arc.aid $orderWay";
} else if ($orderby == 'hot' || $orderby == 'click') {
if ($orderby == "senddate") {
$ordersql = " ORDER BY arc.senddate $orderWay";
} else if ($orderby == "pubdate") {
$ordersql = " ORDER BY arc.pubdate $orderWay";
} else if ($orderby == "id") {
$ordersql = " ORDER BY arc.id $orderWay";
} else if ($orderby == "hot" || $orderby == "click") {
$ordersql = " ORDER BY arc.click $orderWay";
} else if ($orderby == "lastpost") {
$ordersql = " ORDER BY arc.lastpost $orderWay";
} else if ($orderby == "scores") {
$ordersql = " ORDER BY arc.scores $orderWay";
} else if ($orderby == "rand") {
$ordersql = " ORDER BY rand()";
} else {
$ordersql = " ORDER BY arc.aid $orderWay";
$ordersql = " ORDER BY arc.sortrank $orderWay";
}
$addField = 'arc.'.join(',arc.', $this->ListFields);
//如果不用默认的sortrank或id排序,使用联合查询数据量大时非常缓慢
@@ -703,12 +713,22 @@ class SgListView
if ($innertext == '') $innertext = GetSysTemplets('list_sglist.htm');
//排序方式
$ordersql = '';
if ($orderby == 'senddate' || $orderby == 'id') {
$ordersql = " ORDER BY arc.aid $orderWay";
} else if ($orderby == 'hot' || $orderby == 'click') {
if ($orderby == "senddate") {
$ordersql = " ORDER BY arc.senddate $orderWay";
} else if ($orderby == "pubdate") {
$ordersql = " ORDER BY arc.pubdate $orderWay";
} else if ($orderby == "id") {
$ordersql = " ORDER BY arc.id $orderWay";
} else if ($orderby == "hot" || $orderby == "click") {
$ordersql = " ORDER BY arc.click $orderWay";
} else if ($orderby == "lastpost") {
$ordersql = " ORDER BY arc.lastpost $orderWay";
} else if ($orderby == "scores") {
$ordersql = " ORDER BY arc.scores $orderWay";
} else if ($orderby == "rand") {
$ordersql = " ORDER BY rand()";
} else {
$ordersql = " ORDER BY arc.aid $orderWay";
$ordersql = " ORDER BY arc.sortrank $orderWay";
}
$addField = 'arc.'.join(',arc.', $this->ListFields);
//如果不用默认的sortrank或id排序,使用联合查询数据量大时非常缓慢


+ 4
- 4
src/system/archive/specview.class.php View File

@@ -318,13 +318,13 @@ class SpecView
//排序方式
$ordersql = '';
if ($orderby == 'senddate') {
$ordersql = " ORDER BY arc.senddate desc";
$ordersql = " ORDER BY arc.senddate DESC";
} else if ($orderby == 'pubdate') {
$ordersql = " ORDER BY arc.pubdate desc";
$ordersql = " ORDER BY arc.pubdate DESC";
} else if ($orderby == 'id') {
$ordersql = " ORDER BY arc.id desc";
$ordersql = " ORDER BY arc.id DESC";
} else {
$ordersql = " ORDER BY arc.sortrank desc";
$ordersql = " ORDER BY arc.sortrank DESC";
}
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,arc.money,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,mb.uname,mb.face,mb.userid FROM `#@__archives` arc LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id LEFT JOIN `#@__member` mb on arc.mid = mb.mid WHERE $orwhere $ordersql LIMIT $limitstart,$row ";
$this->dsql->SetQuery($query);


Loading…
Cancel
Save