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

简介:

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

第一步:

phpcms\libs\functions\extention.func.php

里面增加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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

第二步:

调用的方式为:

1
2
3
4
5
<?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,多个模型用,分开


本文转自 gutaotao1989 51CTO博客,原文链接:http://blog.51cto.com/taoyouth/1609769


相关文章
|
8月前
|
Java Windows Spring
IDEA中报错:因为在此系统上禁止运行脚本有关详细信息,请参阅...(图文解释 亲测已解决)
IDEA中报错:因为在此系统上禁止运行脚本有关详细信息,请参阅...(图文解释 亲测已解决)
892 0
|
8月前
百度搜索:蓝易云【ModStart安装环境检测提示缺少 xxx 扩展解决方法。】
如果以上方法仍未解决问题,建议参考ModStart的官方文档、社区论坛或联系技术支持,寻求进一步的帮助和指导。不同的应用和环境可能有不同的解决方法,确保按照官方指南和文档的建议进行操作。
53 0
|
SQL 数据库 数据库管理
织梦DEDECMS系统模型不允许删除的解决方法
织梦一个非常好用的原因就在于二次开发非常简单,我们可以任意修改新建内容模型,来达到我们的建站要求,但是我们发现织梦的系统模型是不能删除的。
|
存储 监控 前端开发
行动策略过于复杂怎么办?试试下面一些解决方法
随着使用SLS告警越来越深入,有些用户的行动策略会配置的特别复杂,有些时候可以让用户通过创建多个行动策略来进行一定的精简,但是在一些场景下,用户是无法创建多个行动策略的。
244 0
行动策略过于复杂怎么办?试试下面一些解决方法
|
存储 Python
打开pkl文件提示解码错误解决方法
打开pkl文件提示解码错误解决方法
981 0
打开pkl文件提示解码错误解决方法
|
C++
VS平台的基本设置以及相关报错问题解决方法
在刚开始学习编程后,期间总会遇到问题,以前都是记录下来没有整理。现在积少成多,也乘着有空就在这里给整理一下。
172 0
DEDECMS织梦更改include目录重命名后,后台属性编辑无法加载的解决方法
织梦dedecms是新手站长使用得比较多的一个建站开源程序,正因如此,也是被被入侵挂马比较多的程序。下面就来跟大家说一下重新命名dedecms的include文件夹后后台属性编辑无法加载的问题
DEDECMS织梦更改include目录重命名后,后台属性编辑无法加载的解决方法
给Typecho添加显示加载时间的代码
给Typecho添加显示加载时间的代码
177 0
Redmine系统通过bug号解析页面内容及下载附件
Redmine系统通过bug号解析页面内容及下载附件
125 0
Confluence 6 中修改默认的表现和内容
Confluence 构建了一些有用的默认设置,这些设置能够让第一次访问使用 Confluence 系统的用户更好的了解系统。
882 0

热门文章

最新文章

下一篇
开通oss服务