|
主题:[分享]利用强大的SQL打造个性评论系统 [收藏主题] ![]() |
转到: |
![]() 已经有很多大侠说过这个话题了,思路也很简单。但可能有些朋友需要的是完整的代码演示,那么我来给大家唠叨点。 步骤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]
好了,基本完工了了。 再加一个平均得分标签吧:评论平均得分标签 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_评论平均得分标签}放到内容页模板里看看,效果不错吧。 |
|
![]() ![]() ![]() ![]() |
![]() |
|
![]() ![]() ![]() ![]() |
![]() |
|
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() |
|
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() |
<上一主题 | 下一主题 > |