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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

【lidq.jingwu】兄:能否给我写个SQL

[复制链接]
miqi2 发表于 2009-11-6 14:05:54 | 显示全部楼层 |阅读模式
本帖最后由 miqi2 于 2009-11-6 15:08 编辑

lidq.jingwu哟:
     我想在news_category.html.php 的文章列表页面也显示每一篇文章里面的自定义字段,
  1. $news['custom'] = array('name'=>'', 'key'=>array(), 'value'=>array());
  2. if($page == 1 && !empty($news['customfieldid'])) {
  3.         $news['custom']['value'] = unserialize($news['customfieldtext']);
  4.         if(!empty($news['custom']['value'])) {
  5.                 foreach ($news['custom']['value'] as $key => $value) {
  6.                         if(is_array($value)) {
  7.                                 $news['custom']['value'][$key] = implode(', ', $value);
  8.                         }
  9.                 }
  10.         }
  11.         $query = $_SGLOBAL['db']->query('SELECT name, customfieldtext FROM '.tname('customfields').' WHERE customfieldid=\''.$news['customfieldid'].'\'');
  12.         $value = $_SGLOBAL['db']->fetch_array($query);
  13.         $news['custom']['name'] = $value['name'];
  14.         $news['custom']['key'] = unserialize($value['customfieldtext']);
  15. }
复制代码
viewnews.php才会有这个查表,category.php没有,我知道模型可以这样显示但是我不想用模型,你能否给我写个SQL,我在文章列表页面也可以像viewnews.php那样有每篇文章的自定义字段,新建个模块出来读取文章信息只有[customfieldtext]这个。感谢你哦
黄群友 发表于 2009-11-6 14:22:58 | 显示全部楼层
沙发。。。
回复

使用道具 举报

lidq.jingwu 发表于 2009-11-6 14:35:58 | 显示全部楼层
1# miqi2


    不太明白你的意思,news_category.html.php 这个页面只是列表页面并没有内容的,你想在它里面调用内容吗?
回复

使用道具 举报

 楼主| miqi2 发表于 2009-11-6 14:50:43 | 显示全部楼层
本帖最后由 miqi2 于 2009-11-6 15:04 编辑
miqi2


    不太明白你的意思,news_category.html.php 这个页面只是列表页面并没有内容的,你想在它 ...
lidq.jingwu 发表于 2009-11-6 14:35


是的我想调用他里面的内容包括附件和自定义字段的名称和自定义字段的内容。

    news_category.html.php 默认只是成列出 此分类下面的文章标题列表。我在想点击某个文章的标题用javascript显示此文章中定义的自定义字段的名称和内容就可以了不想进入文章。
  1. <!--{block name="spacenews" parameter="type/gss/catid/27/order/i.digest DESC,i.dateline DESC/limit/0,50/cachetime/86400/showdetail/1/messagelen/1000/cachename/chengyuanList/tpl/data"}--><!--gss-->
复制代码
我用这个显示此文章所有内容,但是他的[customfieldtext]里只有自定义字段的内容,没有自定义字段的名称,显然无法达到我的要求。
unserialize($_SBLOCK[chengyuanList][0][customfieldtext])反序列只能得到字段内容数组,没有名称,我两者都想要。就是说整篇文章所有内容我都要,我不需要点击进入文章内容页面,我 在列表页面就要显示所有。包括附件。感谢lidq.jingwu的耐心解答
回复

使用道具 举报

 楼主| miqi2 发表于 2009-11-6 18:02:52 | 显示全部楼层
顶上去呀 顶呀顶!
回复

使用道具 举报

lidq.jingwu 发表于 2009-11-6 18:05:18 | 显示全部楼层
4# miqi2


    如果需要自定义字段的名称,通过一条语句是调用不出来的,因为在supe_spacenews中只保存了自定义字段的一个ID,需要根据这个ID,再将它的名称查出来。
下面是我在7.0版中写的一个SQL,可以将名称查出来,7.5版也测试了,是可以的。
  1. SELECT i.*,n.*,c.type as c_type,c.name as c_name,c.displayorder as c_displayorder,c.customfieldtext as c_customfieldtext,c.isdefault as c_isdefault,c.isshare as c_isshare FROM supe_spaceitems i, supe_spacenews n, supe_customfields c WHERE i.itemid = n.itemid AND n.customfieldid = c.customfieldid AND n.customfieldid !=0
复制代码
在使用进需要仔细看一下字段。
这个要用到模块的高级模式的,先试一下吧。
回复

使用道具 举报

 楼主| miqi2 发表于 2009-11-6 19:17:43 | 显示全部楼层
本帖最后由 miqi2 于 2009-11-6 19:25 编辑
在使用进需要仔细看一下字段。
这个要用到模块的高级模式的,先试一下吧。
lidq.jingwu 发表于 2009-11-6 18:05



    我在模板里写了个SQL语句查出我需要的了,你写的我也试试吧。

模块的高级模式可以缓存数据对吧。那我在模板里直接写的SQL查的数据就不会被缓存咯?这样每次访问都要查表对吧?这样对性能不好是么?
回复

使用道具 举报

littlehz 发表于 2009-11-6 19:45:05 | 显示全部楼层
让后台生成模块,有缓存
回复

使用道具 举报

 楼主| miqi2 发表于 2009-11-6 19:54:28 | 显示全部楼层
让后台生成模块,有缓存
littlehz 发表于 2009-11-6 19:45



    好的感谢二位 我还是不在模板里做SQL了,在模块里写SQL生成缓存好。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 00:19 , Processed in 0.032600 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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