15621857753

phpcmsV9如何调用多个模型里的内容

来源:齐鲁建站 栏目:开发教程 阅读: 日期:2021-03-30

本文介绍了phpcmsV9如何调用多个模型里的内容,大多数时候,我希望在多个模型下调用最新内容,但是由于V9模型使用存储表,使用GET进行In分atid查询非常麻烦,教程给出了非常简单的方式,试试看吧。

下面齐鲁建站就和大家分享下phpcmsV9如何调用多个模型里的内容。

实现教程:

第一步:

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}

{/pc}

解释:

红色数字是调用条数,从0开始调用8条

蓝色数字模型ID,不是栏目的ID,多个模型用,分开

展开