分享SQL调用第三方数据的心得

  • 作者:Bdk
  • 来源:网络
  • 时间:2020-11-21 23:11:21
  • 0人已阅读
简介:我个人认为在调用数据中最重要的就是要知道打印数据 <!--{eval print_r($_SBLOCK[&#39;vrcfonews&#39;]);}--> 只有打印出数据我们才能分析数据,采取合理的方式得到数据.
我个人认为在调用数据中最重要的就是要知道打印数据 <!--{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这样的话,一定要记得家{}哦,不然会出错。

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

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

附件下载

    [!--downpath--]
Top