您的位置:程序门 -> web 开发 -> asp



求解:这个函数我哪写错了


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求解:这个函数我哪写错了[无满意答案结贴]
发表于:2008-01-16 15:01:59 楼主
function   topcxfw(sortid)
    dim   rs,sql,i,newsname,newflag
    set   rs   =   server.createobject("adodb.recordset")
    sql="select   id,newsname,sortid,addtime   from   nwebcn_news   where   viewflag   and   sortpath   where   (select   sortpath   from   nwebcn_newssort   where   id="&sortid&")   order   by   id   desc"
    rs.open   sql,conn,1,1
    response.write" <table   width='340'   border='0'   cellspacing='0'   cellpadding='0'> "
    response.write   " <tr> <td   height='1'> </td> </tr> "
    if   rs.bof   and   rs.eof   then
        response.write   " <tr> <td   align='center'> 暂无相关信息 </td> </tr> "
    else
        for   i=1   to   6
            if   rs.eof   then   exit   for
                  if   strlen(rs("newsname")) <=1   then
                newsname=rs("newsname")
                  else  
                      newsname=strleft(rs("newsname"),40)
                  end   if
                  if   now()-rs("addtime") <=2   then  
                      newflag="&nbsp; <img   src='../images/new_01.gif'> "
                  else
                      newflag=""
                  end   if
            response.write" <tr   > <td   class='listtitle'> &nbsp;&nbsp; <img   src='../images/wenling_44.jpg'   width='11'   height='11'> &nbsp; <a   href='newsview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'> "&newsname&" </a> "&newflag&" </td> </tr> "
            rs.movenext
        next
    end   if
    response.write   " <tr> <td   height='1'> </td> </tr> "
    response.write" </table> "
    rs.close
    set   rs=nothing
end   function

该函数我是用于显示数据库中nwebcn_news新闻表中用于首页显示的图片调用的,但是写完以后一调用首页就变形了,而且也没有出现我想要的只输出一行3个图片的样式,请各位高手帮忙给看看错误在哪里,谢谢
发表于:2008-01-16 15:04:221楼 得分:0
补充说明,该函数我想只让它显示某个新闻栏目(节点)中的首页新闻图片
发表于:2008-01-16 15:11:442楼 得分:0
vbscript code
for i=1 to [color=#ff0000]6[/color] '如果数据不为空会循环6次啊 if rs.eof then exit for if strlen(rs("newsname")) <=1 then newsname=rs("newsname") else newsname=strleft(rs("newsname"),40) end if if now()-rs("addtime") <=2 then newflag="&nbsp; <img src='../images/new_01.gif'> " else newflag="" end if response.write" <tr > <td class='listtitle'> &nbsp;&nbsp; <img src='../images/wenling_44.jpg' width='11' height='11'> &nbsp; <a href='newsview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'> "&newsname&" </a> "&newflag&" </td> </tr> " rs.movenext next

还有为什么用   for循环啊
发表于:2008-01-16 15:19:113楼 得分:0
]   '如果数据不为空会循环6次啊
循环几次不重要,这个不是可以控制嘛,用这个循环是因为比较容易控制显示数量
,现在问题不在这里
发表于:2008-01-16 15:23:494楼 得分:0
function       topcxfw(sortid)  
        dim       rs,sql,i,newsname,newflag  
        set       rs       =       server.createobject("adodb.recordset")  
        sql="select       top   6   id,newsname,sortid,addtime       from       nwebcn_news       where       viewflag       and       sortpath       where       (select       sortpath       from       nwebcn_newssort       where       id="&sortid&")       order       by       id       desc"  
        rs.open       sql,conn,1,1  
        response.write"   <table       width='340'       border='0'       cellspacing='0'       cellpadding='0'>   "  
        response.write       "   <tr>   <td       height='1'>   </td>   </tr>   "  
        if       rs.bof       and       rs.eof       then  
                response.write       "   <tr>   <td       align='center'>   暂无相关信息   </td>   </tr>   "  
        else  
                do   while   not   rs.eof

                                    if       strlen(rs("newsname"))   <=1       then  
                                newsname=rs("newsname")  
                                    else      
                                            newsname=strleft(rs("newsname"),40)  
                                    end       if  
                                    if       now()-rs("addtime")   <=2       then      
                                            newflag="&nbsp;   <img       src='../images/new_01.gif'>   "  
                                    else  
                                            newflag=""  
                                    end       if  
                        response.write"   <tr       >   <td       class='listtitle'>   &nbsp;&nbsp;   <img       src='../images/wenling_44.jpg'       width='11'       height='11'>   &nbsp;   <a       href='newsview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'>   "&newsname&"   </a>   "&newflag&"   </td>   </tr>   "  
                        rs.movenext  
                loop
        end       if  
        response.write       "   <tr>   <td       height='1'>   </td>   </tr>   "  
        response.write"   </table>   "  
        rs.close  
        set       rs=nothing  
end       function  
发表于:2008-01-16 15:31:485楼 得分:0
假如数据库不为空,出现的的情况是
每行显示一张图片,显示6行

还有这句sql语句我怎么看都有问题
sql="select       id,newsname,sortid,addtime       from       nwebcn_news       where       viewflag       and       sortpath       where       (select       sortpath       from       nwebcn_newssort       where       id="&sortid&")       order       by       id       desc"  

发表于:2008-01-16 15:53:416楼 得分:0
仔细检查

response.write"   <tr       >   <td       class='listtitle'>   &nbsp;&nbsp;   <img       src='../images/wenling_44.jpg'       width='11'       height='11'>   &nbsp;   <a       href='newsview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'>   "&newsname&"   </a>   "&newflag&"   </td>   </tr>   "  


这一段代码...

还有,建议在 <td> 和 </td> 之间加&nbsp;
发表于:2008-01-16 16:00:497楼 得分:0
回楼上的兄弟,我的意思是现在要它只显示一行3个图片,sql语句我学的不是很好,不知道这里有什么问题正确的应该咋写
发表于:2008-01-16 16:02:088楼 得分:0
回复4楼我怎么看不出你的区别?
发表于:2008-01-16 16:03:559楼 得分:0
回6楼的兄弟,着段代码的调用没有错误,着段代码起的作用应该只是给图片加上连接而已
发表于:2008-01-16 16:26:2710楼 得分:0
vbscript code
function topcxfw(sortid) dim rs,sql,i,newsname,newflag,count count=0 set rs = server.createobject("adodb.recordset") sql="select id,newsname,sortid,addtime from nwebcn_news where viewflag=1 and sortpath in (select sortpath from nwebcn_newssort where id="&sortid&") order by id desc" rs.open sql,conn,1,1 response.write" <table width='340' border='0' cellspacing='0' cellpadding='0'> " response.write " <tr> <td height='1'> </td> </tr> " if rs.bof and rs.eof then response.write " <tr> <td align='center'> 暂无相关信息 </td> </tr> " else response.write "<tr>" do while not rs.eof if strlen(rs("newsname")) <=1 then newsname=rs("newsname") else newsname=strleft(rs("newsname"),40) end if if now()-rs("addtime") <=2 then newflag="&nbsp; <img src='../images/new_01.gif'> " else newflag="" end if if count>3 then response.write "</tr><tr>" count=0 end if response.write"<td class='listtitle'> &nbsp;&nbsp; <img src='../images/wenling_44.jpg' width='11' height='11'> &nbsp; <a href='newsview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'> "&newsname&" </a> "&newflag&" </td></tr>" rs.movenext count=count+1 loop end if response.write " <tr> <td height='1'> </td> </tr> " response.write" </table> " rs.close set rs=nothing end function


我不知道sql语句有没有写对的
发表于:2008-01-16 16:49:5511楼 得分:0
对是对了,但不显示图片,我刚发现我效果函数的代码发错了应该是这个

function   topnewspic(sortid)
    dim   rs,sql,i,newsname,newflag,smallpicpath
    set   rs   =   server.createobject("adodb.recordset")
    sql="select   id,newsname,sortid   from   nwebcn_news   where   viewflag   and   sortpath   in   (select   sortpath   from   nwebcn_newssort   where   id="&sortid&")   order   by   id   desc"
    rs.open   sql,conn,1,1
    response.write" <table   width='0'   border='0'   cellspacing='0'   cellpadding='0'> "
    response.write   " <tr> <td   height='1'> </td> </tr> "
    if   rs.bof   and   rs.eof   then
        response.write   " <tr> <td   align='center'> 暂无相关信息 </td> </tr> "
    else
        response.write" <tr> "
        for   i=1   to   3
            if   rs.eof   then   exit   for
    response.write" <td   width='25%'> "
    if   strlen(rs("newsname")) <=20   then
                newsname=rs("newsname")
    else  
        newsname=strleft(rs("newsname"),18)
    end   if
    smallpicpath=htmlsmallpic(rs("sortpath"),rs("smallpic"))
            response.write   " <table   align='center'     border='0'   cellpadding='0'   cellspacing='0'   > "   &_
                                  " <tr> <td   align='center'     width='80'   height='50'   style='text-decoration:   underline;   "   &_
  "border:   1px   solid   #cccccc;'> <a   href='newsview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'> "   &_
  " <img   src='"&smallpicpath&"'   border='0'   width='80'   height='50'   onload='javascript:drawimage(this,80,0);'> </a> "   &_
  " </td> </tr> <tr> <td   height=''> </td> </tr> </table> "
    response.write" </td> "
            rs.movenext
        next
        response.write" </tr> "
    end   if
    response.write   " </table> "
    rs.close
    set   rs=nothing
end   function
发表于:2008-01-16 17:07:3512楼 得分:0
看的有点晕,都是代码狂,俺来总结一下:
vb.net code
<% ... response.write "<table><tr>" for i=1 to rs.recordcount response.write("<td>") response.write("这里写单元格的内容") if i mod 3=0 then response.write("</tr><tr>") end if if rs.eof then exit for response.write("</td>") rs.movenext next response.write("<td></tr></table>") ... %>
发表于:2008-01-16 17:30:3713楼 得分:0
晕,自己照着改吧
发表于:2008-01-16 20:51:4214楼 得分:0
function   topproducts()
    dim   rs,sql,i,productname,smallpicpath
    set   rs   =   server.createobject("adodb.recordset")
    sql="select   id,productname,sortid,smallpic,groupid,exclusive   from   nwebcn_products   where   viewflag   and   newflag   order   by   id   desc"
    rs.open   sql,conn,1,1
    response.write" <table   width='100%'   border='0'   cellspacing='0'   cellpadding='0'> "
    response.write   " <tr> <td   height='20'> </td> </tr> "
    if   rs.bof   and   rs.eof   then
        response.write   " <tr> <td   align='center'> 暂无相关信息 </td> </tr> "
    else
        response.write" <tr> "
        for   i=1   to   4
            if   rs.eof   then   exit   for
    response.write" <td   width='25%'> "
    if   strlen(rs("productname")) <=20   then
                productname=rs("productname")
    else  
        productname=strleft(rs("productname"),18)
    end   if
    smallpicpath=htmlsmallpic(rs("groupid"),rs("smallpic"),rs("exclusive"))
            response.write   " <table   align='center'     border='0'   cellpadding='0'   cellspacing='0'   > "   &_
                                  " <tr> <td   align='center'     width='142'   height='142'   style='text-decoration:   underline;   "   &_
  "border:   1px   solid   #cccccc;'> <a   href='productview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'> "   &_
  " <img   src='"&smallpicpath&"'   border='0'   width='140'   height='140'   onload='javascript:drawimage(this,140,140);'> </a> "   &_
  " </td> </tr> <tr> <td   height='32'> <img   src='../images/arrow_01.gif'   width='14'   height='11'"   &_
  "   align='absmiddle'> &nbsp; <a   href='productview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'> "&productname&" </a> </td> </tr> </table> "
    response.write" </td> "
            rs.movenext
        next
        response.write" </tr> "
    end   if
    response.write   " </table> "
    rs.close
    set   rs=nothing
end   function

这个函数只输出一行4列也就是四个图片但是查询的是商品的表中相关字段,我现在需要显示新闻表中的首页图片应该怎么改?
发表于:2008-01-16 20:52:4315楼 得分:0
样式不变
发表于:2008-01-16 20:54:1916楼 得分:0
楼主啊,我怎么感觉这个数据表很熟悉捏?
^_^
发表于:2008-01-16 21:00:5217楼 得分:0
楼上的兄弟是不是用过这个系统?嘿嘿,求教啊,这个新闻样式我应该怎么改
发表于:2008-01-16 21:02:4618楼 得分:0
补充说明一下我要求这个代码查询某个节点(栏目)中的新闻图片,别的栏目中的不显示
发表于:2008-01-16 21:17:0019楼 得分:0
vbscript code
response.write("<tr>") for i=1 to 6 if rs.eof then exit for if strlen(rs("newsname")) <=1 then newsname=rs("newsname") else newsname=strleft(rs("newsname"),40) end if if now()-rs("addtime") <=2 then newflag="&nbsp; <img src='../images/new_01.gif'> " else newflag="" end if if (i mod 3)=0 then response.write("</tr><tr>") response.write" <td class='listtitle'> &nbsp;&nbsp; <img src='../images/wenling_44.jpg' width='11' height='11'> &nbsp; <a href='newsview.asp?id="&rs("id")&"&sortid="&rs("sortid")&"'> "&newsname&" </a> "&newflag&" </td> " rs.movenext next response.write("</tr>")

这样试试...
这种sql语句其实很烂,如果数据库是access的还能用,如果是sql   server的就会报错...
发表于:2008-01-16 21:51:5020楼 得分:0
楼上的兄弟,你这样写的话sql查询过程呢?凭空就输出这些东西?
发表于:2008-01-16 21:54:5521楼 得分:0
而且这个输出好像也不是输出首页新闻图片的吧?
发表于:2008-01-17 09:37:4022楼 得分:0


快速检索

最新资讯
热门点击