帝国cms跨数据库调用栏目信息教程
时间:2024年04月11日
/来源:网络
/编辑:佚名
在帝国cms项目开发过程中,有的客户需要跨数据库调用数据,比如在一起个服务器上两个网站A与B,主网站是A ,子网站是B。B网站不经常更新,但是还想让他页面有所变化,利于搜索引擎的抓取优化,这就需要跨数据库调用A数据库的文章信息来填充到B网站上显示。我整理了一下思路,其实很简单,重点就在两个:
1、数据库用户名权限
2、数据库.表名
废话不多说,调用方法具体如下:
我的两个网站数据库名分别为①sql_feisuxs ②sql_feisu_zidian
首先设置数据库权限,我用的是phpmyadmin,就按照phpmyadmin来示范。
1、用root账户登陆phpmyadmin,点击用户,找到子网站所使用的sql用户名,我的子网站为sql_feisu_zidian,点击编辑权限
2、点击数据库
3、选择需要添加的用户名,执行。
执行之后主网站的数据库用户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" title="<?=$bqr3[title]?>"><?=esub($bqr3[title],36)?>...</a>
<?
}
?>
</ul>
<?
}
?>
<!-- 子栏目信息列表,不需要就删除 -->
<?
}
?>
1、数据库用户名权限
2、数据库.表名
废话不多说,调用方法具体如下:
我的两个网站数据库名分别为①sql_feisuxs ②sql_feisu_zidian
首先设置数据库权限,我用的是phpmyadmin,就按照phpmyadmin来示范。
1、用root账户登陆phpmyadmin,点击用户,找到子网站所使用的sql用户名,我的子网站为sql_feisu_zidian,点击编辑权限
2、点击数据库
3、选择需要添加的用户名,执行。
执行之后主网站的数据库用户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" title="<?=$bqr3[title]?>"><?=esub($bqr3[title],36)?>...</a>
<?
}
?>
</ul>
<?
}
?>
<!-- 子栏目信息列表,不需要就删除 -->
<?
}
?>
新闻资讯 更多
- 【帝国cms教程】帝国cms跨数据库调用栏目信息教程04-11
- 【帝国cms教程】帝国cms调用指定栏目下的子栏目名/子栏目自定义字段/链接地址/信息数量以及子栏目信息列表04-11
- 【帝国cms教程】帝国cms统计栏目的访问量04-11
- 【帝国cms教程】帝国CMS封面页循环子栏目并且调用子栏目下的信息04-11
- 【帝国cms教程】帝国CMS列表页获取获取父栏目下所有子栏目 并且高亮当前栏目名称04-11
- 【帝国cms教程】帝国cms公共模板_相关信息模板添加支持标签04-11
- 【帝国cms教程】帝国cms用js在html页面上实时显示系统当前时间日期/年月日星期几/周几显示04-11
- 【帝国cms教程】帝国cms后台系统内置文本编辑器集成codesnippet代码高亮插件并且为其添加行号的方法04-11
热门文章
- 178Moban源码谈谈免费源码与收费源码的区别
- 2帝国CMS忘记后台登陆用户名、密码、认证码的解决方法
- 3帝国CMS(EmpireCMS) v7.5后台任意代码执行漏洞及具体修复方法
- 4帝国CMS和WordPress 哪个好?哪个适合建站?
- 5如何解决Discuz的密码错误次数过多请15分钟后登陆的问题
- 6帝国cms灵动标签取得内容和栏目链接地址
- 7emlog pro 注册码“开心”教程(如果有一天,emlog官方版 或者 emlog免费版 跑路了,那用户怎么办?)
- 8帝国cms后台登录出现”您还未登录”怎么解决?
- 9织梦CMS在nginx下设置伪静态方法(附nginx伪静态规则)
- 10帝国cms7.5忘记登录密码 和忘记登录认证码以及多次登录 失败被锁定解决办法