- //假如不消默认的sortrank或id排序,利用连系查询(数据量大时很是迟钝)
- if(preg_match('/hot|click|lastpost|title/', $orderby))
- {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,
- tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
- $addField
- FROM `js_archives` arc
- LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
- $addJoin
- WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";
- }
- //普通环境先从arctiny表查出ID,然后按ID查询(速度很是快)
- else
- {
- $t1 = ExecTime();
- $ids = array();
- $query = "SELECT id FROM `js_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";
- $this->dsql->SetQuery($query);
- $this->dsql->Execute();
- while($arr=$this->dsql->GetArray())
- {
- $ids[] = $arr['id'];
- }
- $idstr = join(',',$ids);
- if($idstr=='')
- {
- return '';
- }
- else
- {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,
- tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
- $addField
- FROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
- $addJoin
- WHERE arc.id in($idstr) $ordersql ";
- }
- $t2 = ExecTime();
- //echo $t2-$t1;
- }
- if($orderby=="default")
- {
- $t1 = ExecTime();
- $ids = array();
- $query = "SELECT id FROM `js_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";
- $this->dsql->SetQuery($query);
- $this->dsql->Execute();
- while($arr=$this->dsql->GetArray())
- {
- $ids[] = $arr['id'];
- }
- $idstr = join(',',$ids);
- if($idstr=='')
- {
- return '';
- }
- else
- {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,
- tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
- $addField
- FROM `js_archives` arc LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
- $addJoin
- WHERE arc.id in($idstr) $ordersql ";
- }
- $t2 = ExecTime();
- //echo $t2-$t1;
- }
- else
- {
- $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,
- tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
- $addField
- FROM `js_archives` arc
- LEFT JOIN `js_arctype` tp ON arc.typeid=tp.id
- $addJoin
- WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";
- }
- else {
- $ordersql=" ORDER BY arc.sortrank $orderWay";
- }
- else if($orderby=="default"){
- $ordersql=" ORDER BY arc.sortrank $orderWay";
- }
- else{
- $ordersql=" ORDER BY ".$orderby.",arc.sortrank $orderWay";
- }
一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。