织梦二次开发之:SQL调用一

时间:12-06-20 栏目:SEO优化 作者:kyle 评论:0 点击: 4,526 次

成都SEO小五在调用一个自定义的织梦模块的时候。研究了不少关于SQL调用的东西。和Runphp配合起来,简直是爽歪歪。

现在把总结到的一些二次开发经验写下来备查。

一、SQL配合Runphp处理任意字段数据

初时我代码是这样的。是实现的需求是,根据当前文章的ID。取出相关的所有相关文章。因为是用了自定义模型。所以要加上手动处理。

{dede:sql sql='Select * from dede_archives where id=2'}
[field:id runphp='yes']
$arcRow=GetOneArchive(@me);
$dsql = new DedeSql(false);
$sql="select * from dede_addonarticle where body like '%".$arcRow[title]."%' and typeid=2";
$dsql->SetQuery($sql);
$dsql->Execute();
$result='';
while($row = $dsql->GetArray())
{
  $article=GetOneArchive($row['aid']);
  $result.="<li><a href=\"".$article['arcurl']."\" title=\"".$article['title']."\" target=\"_blank\">".$article['title']."</a></li>"."\n";
}
@me=$result;
[/field:id]
{/dede:sql}

后面调试了2个小时。一直显示不出内容。找不到原因。

后面参考了很多代码。发现并没有错误。

最后突然发现有一个用法是global $dsql;把dsql定义成全局的。不明白有什么用。不过还是改成global $dsql;

然后一试成功了。居然。前面的

{dede:sql sql='Select * from dede_archives where id=2'}

是为了测试使用的。我写的复杂的标签都会先进织梦的全局测试做测试,有效才放到页面。便于每个细节的调试。这是一个很爽的功能。在文章页使用的时候要换成下面这个

{dede:sql sql='Select * from dede_archives where id=~id~'}//~id~是取当前文章页面的id

织梦二次开发之:SQL调用一

织梦是非常灵活的。我认为这里的global相当于注册成全局函数。让后面的SQL能进数据库取数据出来。

于是总结了这第一条用法。

{dede:sql sql='Select * from dede_archives where id=~id~'}//这一步取当前文章的ID对应的所有内容
[field:id runphp='yes']//根据ID运行php
$arcRow=GetOneArchive(@me);//根据当前文章的ID取所有字段
global $dsql;//定义全局SQL
$sql="select * from dede_addonarticle where body like '%".$arcRow[title]."%' and typeid=2";//取出我要的栏目里面包括这个标题的东西。就是相关文章
$dsql->SetQuery($sql);//初始化SQL
$dsql->Execute();//执行SQL
$result='';//定义一个空结果
while($row = $dsql->GetArray())//遍历取得的每一行,开始做成我要的Li标签
{
  $article=GetOneArchive($row['aid']);//遍历结果的ID取出结果的文章
  $result.="<li><a href=\"".$article['arcurl']."\" title=\"".$article['title']."\" target=\"_blank\">".$article['title']."</a></li>"."\n";//做成A标签的Li列表
}
@me=$result;//返回结果
[/field:id]
{/dede:sql}

上面我写了比较全面的注释。用到了SQL调用和GetOneArchive这个织梦自带的函数。

织梦自带的功能确实太强大了。越研究越发现很简单的东西可以实现很复杂的功能。

如果哪位有更简单的方法,肯请指正呀。我还是觉得我的方法搞得有点复杂了。不过功能实现了就好了。

今天到这些。明天继续完善织梦SQL的用法。

成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: 织梦二次开发之:SQL调用一,3Q

织梦二次开发之:SQL调用一:等您坐沙发呢!

来给哥评论评论


------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。

常用工具

赞助广告

来看过哥的人