欢迎光临
我们一直在努力

phpcms V9调用多个模型中的最新内容的解决方法

很多时候,希望调用多个模型下的最新内容,但是因为V9的模型使用分表储存,使用GET来IN catid却要连表查询十分麻烦,所以使用下面的办法即可搞定:

第一步:

phpcms\libs\functions\extention.func.php

里面增加

function news(limit="",modelid="",where="")
{db=pc_base::load_model('content_model');
  if((strpos(modelid,",")>=0))
  {modelid=explode(",",modelid);midarr=dot='';
   foreach(modelid as mid)
   {midarr=midarr.dot.mid;dot=',';
   }
   sq="`modelid` IN ({midarr})";
  }
  else
  {
   sq="`modelid`={modelid}";
  }
  db->table_name='v9_model';models=db->select(sq,"tablename");
  sql='';lianhe='';
  foreach(models asname)
  {
   sql=sql.lianhe."SELECT id,catid,title,url,inputtime FROM v9_{name['tablename']}";
   lianhe=' UNION ALL ';
  }time=time();
  sql=sql." ".where." order by inputtime desc limit  ".limit;

  allnews=db->query(sql);
  while(r = db->fetch_array(allnews))
  {
   if(keyfield)
   {key = r[keyfield];
    array[key] = r;
   }
   else
   {array[] = r;
   }
  }
  returnarray[0];
}

以上代码需要注意的是里面表前缀,这里是V9,使用的时候改成你自己的表前缀,默认是V9

第二步:

调用的方式为:

<?php $recent=news("0,8","1,12");?>
{loop recent r}
<li><a href=”{r['url']}” target=”_blank” title=”{r['title']}”>{str_cut($r[title],54,”)}</a></li>
{/loop}
{/pc}

解释:
红色数字是调用条数,从0开始调用8条
蓝色数字模型ID,不是栏目的ID,多个模型用,分开

赞(1)
未经允许不得转载:飘云 » phpcms V9调用多个模型中的最新内容的解决方法
分享到: 更多 (0)