账号通
    

账号  

密码  

1514

查看

0

回复
主题:[求助]教程里的一句话,没看懂 [收藏主题]  
mwmusic 当前离线

330

主题

14

广播

4

粉丝
添加关注
级别:三年级

用户积分:1464 分
登录次数:217 次
注册时间:2008/8/24
最后登录:2015/12/29
mwmusic 发表于:2010/7/19 12:31:57   | 只看该作者 查看该作者主题 楼主 
做在线知识付费 选科汛云开店
题目是:利用强大的SQL打造个性评论系统

问题:其中步骤2里的红色粗体部分是什么意思,怎么操作?

内容是:



步骤1:新建表单

添加自定义表单,且将其命名为-评论表单 数据库为-ks_form_comment

表单添加成功后,我们来添加字段(以下字段仅供示范,想添加什么自己随意):

字段一:所属信息ID号 KS_InfoId 数字型或者单行文本都可

字段二:评论标题   KS_Title 单行文本型

字段三:评分   KS_Point 单选项 选项值 1 2 3 4 5

字段四:评论内容 KS_Content 多行文本型

OK,添加成功这些字段后,大事就完成一半了。

接下来,在表单操作里自动生成模板。复制这些代码,放到你需要加评论的内容页中。



步骤2:加进内容页模板,并修改评论表单模板

如果就是这样把表单模板直接COPY进去,当然还不如把表单js代码放进去来得方便。要把它抠出来,是因为我们要修改里面一个重要的东西,这就是KS_InfoID字段。因为它的值表示了这条评论归属于哪条信息。

将 KS_InfoID前的字段提示 所属信息ID号 去掉,将它的类型更改为 type="hidden" 在value选项后加上value="{$InfoID}" ,这个{$InfoID}大家可以在添加标签里找到,它是信息的小ID号。改了这个后,大事就真的成了。

还有一些细节你也可以改改,比如评分radio选项后你可以添加“分”这个字进去,即形如<input type="radio" name="KS_Point" value="1">1分 这样子的。

完成这些后,第二步就宣告完毕了。现在我们要做的只是如何用SQL标签来调用这些评论了。



步骤三:建SQL标签,读数据

新建一个名为:评论列表标签 的SQL标签,类型选择为终极列表标签。

sql语句可以这样写:select id,AddDate,KS_Content,KS_Point,KS_InfoId,KS_Title,UserIP,UserName,(select count(id) from ks_form_comment) as commentnum from KS_Form_Comment where KS_InfoId='{$CurrInfoID}' order by adddate desc

这里的 '{$CurrInfoID}' 的单引号要不要加可能会因为你在定义 ks_infoid的类型时有所区别,如果是单行文本型,则如上即可。红色部分是你可以自由发挥的东西,因为这里面有UserName在,如果你设置不允许游客评论的话,你可以通过username字段在ks_user表中获取很多有关该用户的信息。这点随你发挥了。



接下来就是写循环体了。

我自己随意写的循环体如下,没加样式,你可以自己去修改:

[loop=10]

<p>添加时间:{$Field(AddDate,Date,YYYY-MM-DD)} 用户IP:{$Field(UserIP,Text,0,...,0,)} 用户名:{$Field(UserName,Text,0,...,0,)} {$AutoID}楼</p>

<p>给予评分:{$Field(KS_Point,Text,0,...,0,)} 该用户共有{$Field(commentnum,Num,0,2)}条评论</p>

<p>标题:{$Field(KS_Title,Text,0,...,0,)}</p>

<p>评论内容:{$Field(KS_Content,Text,0,...,0,)}</p>

[/loop]




好了,基本完工了了。

再加一个平均得分标签吧:评论平均得分标签

SQL语句:

select AVG(KS_Point) AS AvgPoint from KS_Form_Comment where KS_ProId='{$CurrInfoID}'

循环体(没加样式):

[loop=1]

<p>平均得分:{$Field(AvgPoint,Num,0,2)}</p>

[/loop]



OK,打完收工。把你的{SQL_评论列表标签}和{SQL_评论平均得分标签}放到内容页模板里看看,效果不错吧。

补充一点,我用的是商城系统,只有单个频道可进行评论即可,如果您有多个频道,还应加一个 所属频道id号 ks_channelid的隐藏字段,和ks_infoid一样,在内容页模板里进行修改,其值 value="{$ChannelID}",在sql调用的时侯where后增加一个条件判断,即KS_Channeid='{$Param(0)}',然后在文章频道里调用的时候则用{SQL_评论列表标签(1)}、{SQL_评论平均得分标签(1)},其它的类推。



问题:其中步骤2里的红色粗体部分是什么意思,怎么操作?

 
  支持(0) | 反对(0) 回到顶部顶端 回到底部底部
<上一主题 | 下一主题 >
Powered By KesionCMS Version X1
厦门科汛软件有限公司 © 2006-2016 页面执行0.07031秒 powered by KesionCMS 9.0