当前位置:首页 > 文章 > 帝国CMS > 正文内容

帝国cms跨数据库调用栏目信息教程

3年前 (2022-10-22)帝国CMS5134

在帝国cms项目开发过程中,有的客户需要跨数据库调用数据,比如在一起个服务器上两个网站A与B,主网站是A ,子网站是B。B网站不经常更新,但是还想让他页面有所变化,利于搜索引擎的抓取优化,这就需要跨数据库调用A数据库的文章信息来填充到B网站上显示。我整理了一下思路,其实很简单,重点就在两个:

1、数据库用户名权限

2、数据库.表名

废话不多说,调用方法具体如下:

我的两个网站数据库名分别为①sql_feisuxs ②sql_feisu_zidian

首先设置数据库权限,我用的是phpmyadmin,就按照phpmyadmin来示范。

1、用root账户登陆phpmyadmin,点击用户,找到子网站所使用的sql用户名,我的子网站为sql_feisu_zidian,点击编辑权限

帝国cms跨数据库调用栏目信息教程

2、点击数据库

帝国cms跨数据库调用栏目信息教程

3、选择需要添加的用户名,执行。

帝国cms跨数据库调用栏目信息教程

执行之后主网站的数据库用户sql_feisuxs就有权限查询子网站数据库sql_feisu_zidian的数据库了,这样就可以跨库了。

 

在子网站模板中调用方法具体如下:

[e:loop={"select * from sql_feisuxs.phome_ecms_news where classid=5 order by id desc limit 5",10,24,1}]
<li><a href="<?=$bqsr[titleurl]?>">
<img alt="<?=$bqsr[title]?>" src="<?=$bqr[titlepic]?>"/>
<p><?=esub($bqr[title],32)?></p></a>
</li>
[/e:loop]

代码解释:

1、sql_feisuxs.phome_ecms_news(主网站数据库下的新闻表,一定要注意中间的那个点,务必要加上。红色部分为主网站的数据库名)

2、classid=5(主网站被调用的栏目ID)

3、 limit 5(调用条数为5,想调用几条就写几)

4、10,24,1}(10、24就不解释了,常用的人都知道。重点是后面的1,这里是调用必须带有缩略图的文章,如果不是必须就直接改为0)

5、下面的其他代码与e:loop本身代码调用是一样的,限制字数、缩略图地址等等。

附我自己的一段调用代码作为参考:

<?
  $sql=$empire->query("select classid,classname,infos from sql_feisuxs.{$dbtbpre}enewsclass where bclassid=0 and showclass=0 and tbname='news' order by myorder,classid asc");
  $bqno=0;
  while($bqr=$empire->fetch($sql)){
      $bqsr=sys_ReturnEcmsLoopStext($bqr);
      $bqno++;
?>
<!-- 大栏目名 -->
<?=$bqr[classname]?> 
<!-- 大栏目信息数 -->
<?=$bqr[infos]?>
        <?
        $sql2=$empire->query("select classid,classname,infos from sql_feisuxs.{$dbtbpre}enewsclass where bclassid=$bqr[classid] and showclass=0 order by myorder,classid asc");
        while($bqr2=$empire->fetch($sql2)){
            $bqsr2=sys_ReturnEcmsLoopStext($bqr2);
        ?>
        <!-- 小栏目名 -->
        <?=$bqr2[classname]?> 
        <!-- 小栏目信息数 -->
        <?=$bqr2[infos]?>
                <!-- 子栏目信息列表,不需要就删除 -->
                <ul>
                    <?
                    $sql3=$empire->query("select title,titleurl,newstime from sql_feisuxs.{$dbtbpre}ecms_news where classid=$bqr2[classid] order by id desc limit 10");
                    while($bqr3=$empire->fetch($sql3)){
                        $bqsr3=sys_ReturnEcmsLoopStext($bqr3);
                    ?>
                    <span><?=date('m-d',$bqr3[newstime])?><?=$bqr2[classname]?> </span><a href="<?=$bqr3[titleurl]?>" target="_blank" ><?=esub($bqr3[title],36)?>...</a>
                    <?
                        }
                    ?>
                </ul>
        <?
            }
        ?>


    <!-- 子栏目信息列表,不需要就删除 -->
<?
    }
?>

 

扫描二维码推送至手机访问。

版权声明:本文由蓝博发布,如需转载请注明出处。

本文链接:https://www.blueboss.cn/p/659.shtml

“帝国cms跨数据库调用栏目信息教程” 的相关文章

帝国CMS灵动标签循环子栏目导航

帝国CMS灵动标签循环子栏目导航

帝国CMS怎么用灵动标签调用循环子栏目导航呢?下面帝国cms模板网就来告诉大家怎么调用: [e:loop={"select classid,classname,islast from {$dbtbpre}enewsclass where bclassid='0' and showclass=0 o...

帝国CMS退出会员登录后怎么跳转到指定网址

帝国CMS退出会员登录后怎么跳转到指定网址

帝国CMS会员退出后跳转到指定地址的方法! 教程方法如下: 打开 /e/member/class/member_loginfun.php 查找: $gotourl="../../"; 修改成: $gotourl="/e/member/cp/"; 这是跳转到会员中心首页,根据实际需要,可修改。 是...

帝国cms列表模板页随机调用数字

帝国cms列表模板页随机调用数字

帝国cms列表模板页随机调用数字 列表内容模板(list.var) (*) 使用使用程序代码 并打上勾  $rand=rand(1,100); $listtemp='  <li>'.$rand.'<a href="[!--titleurl--]" title="[!--oldti...

帝国CMS登陆后台出现空白的问题及解决方法

帝国CMS登陆后台出现空白的问题及解决方法

帝国CMS后台登陆出现空白页的问题及解决方法。一起来看看吧: 帝国的后台管理系统突然出现这样的情况:登陆后,转向处理页面是出现空白页面,不论账号密码是对是错都是空白,没有提示。 然而正确登陆后直接输入管理页面又可以用。 所有转向都不能用,出现空白页。 问题排除: 1、帝国CMS问题 2、服务器问题...

帝国cms模板哪些垃圾代码可以清理掉?

帝国cms模板哪些垃圾代码可以清理掉?

帝国cms模板中哪些垃圾代码可以清理掉? 清理无用的垃圾代码和不必要的内容是模板制作过程中非常重要的环境环节。让我们详细分析一下,看看在制作过程中是否还有一些问题。 总结无用可分为:重复的CSS定义,太多的空格字符,CSS默认属性,无用和太多的注释语句,空代码标签。 1.空格字符太多 空格字符是在编...

帝国CMS内容页和会员中心怎么调用是否实名认证的会员

帝国CMS内容页和会员中心怎么调用是否实名认证的会员

帝国CMS7.5内容页和会员中心调用会员是否实名认证的的方法! 实现方法如下: 在会员中心页面里加上以下代码即可实现: <?php $userr=sys_ShowMemberInfo(0,''); ?> <?php if($userr[isern]==1) { ?> 已认...