Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[已答复] 分享SQL调用第三方数据的心得

[复制链接]
yayapi 发表于 2009-9-29 11:02:39 | 显示全部楼层 |阅读模式
本帖最后由 yayapi 于 2009-10-8 19:04 编辑

首先感谢lidq.jingwu版主,他在论坛给了我很多帮助,在他的提示下,我才能成功获取到数据.

我个人认为在调用数据中最重要的就是要知道打印数据 <!--{eval print_r($_SBLOCK['vrcfonews']);}--> 只有打印出数据我们才能分析数据,采取合理的方式得到数据.

下面我以我调用ECMS最新文章,跟大家分享下:

1、我们模块管理中选择建立“论坛主题”的新模块(不要选择“资讯”与“论坛帖子”,他们打印出来的数据不是很好调用;至于为什么,Sorry,我是菜鸟,我也不知道,我是靠实践出来的,哈哈),如果你选择错误,没关系,你在生成的代码中修改成name="bbsthread" 就是了,后台生成的代码,我们可以在调用中修改、微调的。

2、选择“高级模式”建立,输入SQL,最开始我直接输入 “SELECT * FROM phome_ecms_news” ,以便于观察能打印出什么数据;

3、将生成的代码放在 index.html.php中看打印出来的数据是什么,我经过分析,打印出来的phome_ecms_news中并没有文章的链接,仔细分析发现 ECMS 的文章链接是通过栏目自己定义链接样式的,我的链接样式是 栏目链接+日期+文章ID;如果文章链接本身存在数据表中,可以下一步。

4、经过分析后,我通过classid 进行关联来获取数据, SQL语句修改为:“SELECT  * FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid“,进行打印分析,我已经获取到了相关的数据;

5、排序方式,我们要选择ECMS中数据的排序方式,而不是SS中默认的,我选择的最新文章,所以将SQL语句修改为:“SELECT * FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid order by newstime DESC”;

6、我们并不需要查询所以数据,以免加重服务器负担(其实可以忽略不计,哈哈),所以我们选择我们需要的数据调用,SQL语句修改为:“SELECT title ,classurl,truetime,id FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid order by newstime DESC”;

7、现在基本获取到了我们需要的全部数据,但是ECMS中title,我们不能控制他的标题长度,所以我们需要将title转化subject调用,修改SQL语句为:“SELECT title as subject,classurl,truetime,id FROM phome_ecms_news n,phome_enewsclass c WHERE n.classid = c.classid order by newstime DESC”

8、好了,大功告成了。我们只需要设置样式就是了,我的样式如下:
<!--{loop $_SBLOCK['vrcfonews'] $value}-->
    <dd><a href="{$value[classurl]}/#date("Y-m-d", $value["truetime"])#/{$value[id]}.html" title="subjectall" class="cBlue" target="_blank">$value[subject]</a></dd>
   <!--{/loop}-->

记住如果你需要在{$value[id]}.html这样的话,一定要记得家{}哦,不然会出错。

我们也可以顺便调出该文章所在栏目名称及链接了,更多的需要自己去实践了。

本人纯属菜鸟级别,有不正确的地方,大家支出;如果有什么问题,跟贴联系。

评分

1

查看全部评分

回复

使用道具 举报

 楼主| yayapi 发表于 2009-9-29 11:03:18 | 显示全部楼层
本帖最后由 yayapi 于 2009-9-29 11:04 编辑

沙发自己做,好久没写这么长的东西了。累哦,赫赫!!

至于为什么这么辛苦采用SQL语句,而不是采用JS,赫赫。咱基本是为了SEO需求。
回复

使用道具 举报

eake 发表于 2009-9-30 18:05:39 | 显示全部楼层
不行啊我调用的怎么不会显示
回复

使用道具 举报

 楼主| yayapi 发表于 2009-10-8 19:03:56 | 显示全部楼层
不行啊我调用的怎么不会显示
eake 发表于 2009-9-30 18:05



    你需要根据你自己的需要修改SQL语句 我这个是调用ECMS的.
回复

使用道具 举报

eake 发表于 2009-10-8 23:48:53 | 显示全部楼层
我调用使用了绝对路径成功了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-14 05:24 , Processed in 0.130835 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表