自留地
切勿乱来!
        找回密码

PHPCMS V9调用多个模型中的内容

#PHPCMS专题

很多时候,希望调用多个模型下的最新内容,但是因为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 as $name)
  {
   $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;
   }
  }
  return $array[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}

 

解释:

0,8数字是调用条数,从0开始调用8条
1,12数字模型ID,不是栏目的ID,多个模型用,分开

赞(1)  收藏 (0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《PHPCMS V9调用多个模型中的内容》
文章链接:https://www.ediok.cn/blog/2013/03/200.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到

评论 2

评论前必须登录!

 

  1. #2

    可以 发呀。

    张三 北京市13年前 (2013-07-17)
  2. #1

    发不了?

    zhoutao 江苏省13年前 (2013-03-28)

关注互联网发展前沿,关注PHPCMS技术演进,钻研PHPCMS技术开发

问答社区 联系我们

登录

找回密码

登录即表示同意本站用户协议隐私政策
©2025 周涛博客 All rights reserved

注册

注册即表示同意本站用户协议隐私政策
©2025 周涛博客 All rights reserved

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

微信扫一扫