/***guestbook.php****/
$smarty->assign('msgres',$msgres);//$msgres是数据库取出的留记录言数组,确认里面有一条记录。
$smarty->display('header.htm');
$smarty->display('guestbook.htm');
$smarty->display('footer.htm');[code= HTML]
/*****模板文件guestbook.htm******/
<!--按照手册上的意思和例子是说name可以随便起。loop后面是数组的名字-->
{section name=msgshow loop=$msgres}
<div class="msg">
<table class="msgtable">
<tr height="30" bgcolor="#eeeeee">
<td align="center" width="60"><strong>{$msgres[msgshow].uname}</strong></td>
<td width="220"> 留言时间:{$msgres[msgshow].posttime}</td>
<td> IP:{$msgres[msgshow].ip}</td><td></td></tr>
<tr height="60" valign="">
<td align="center"><img src="images/avatar/1.gif" /></td>
<td colspan="3">{$msgres[msgshow].msg}<br></tr>
</table>
</div>
{sectionelse}
<div class="msg">还没有留言哦,还不快抢沙发!</div>
{/section}
[/code]
我运行过后输出的地方不是1,就是2或者一个空。取出来的这个数组很正常。我测试过。而且,他不正常输出竟然输出了
18个循环结果。。请问这是怎么回事啊

解决方案 »

  1.   

     
    /*****模板文件guestbook.htm******/ 
    <!--按照手册上的意思和例子是说name可以随便起。loop后面是数组的名字--> 
    {section name=msgshow loop=$msgres} 
    <div class="msg"> 
    <table class="msgtable"> 
    <tr height="30" bgcolor="#eeeeee"> 
    <td align="center" width="60"> <strong>{$msgres[msgshow].uname} </strong> </td> 
    <td width="220"> 留言时间:{$msgres[msgshow].posttime} </td> 
    <td> IP:{$msgres[msgshow].ip} </td> <td> </td> </tr> 
    <tr height="60" valign=""> 
    <td align="center"> <img src="images/avatar/1.gif" /> </td> 
    <td colspan="3">{$msgres[msgshow].msg} <br> </tr> 
    </table> 
    </div> 
    {sectionelse} 
    <div class="msg">还没有留言哦,还不快抢沙发! </div> 
    {/section} html代码贴错了、、
      

  2.   

    <?php
    $arr = array(array('a'=>1,'b'=>2),array('a'=>3,'b'=>4));
    ?>{section name=item loop=$arr}
    a={$item.a}
    b={$item.b}
    {/section}
      

  3.   

    用你的模板测试了没有问题<div class="msg"> 
    <table class="msgtable"> 
    <tr height="30" bgcolor="#eeeeee"> 
    <td align="center" width="60"> <strong>uname </strong> </td> 
    <td width="220"> 留言时间:posttime </td> 
    <td> IP:ip </td> <td> </td> </tr> 
    <tr height="60" valign=""> 
    <td align="center"> <img src="images/avatar/1.gif" /> </td> 
    <td colspan="3">msg <br> </tr> 
    </table> 
    </div> 
     
    <div class="msg"> 
    <table class="msgtable"> 
    <tr height="30" bgcolor="#eeeeee"> 
    <td align="center" width="60"> <strong>uname1 </strong> </td> 
    <td width="220"> 留言时间:posttime1 </td> 
    <td> IP:ip1 </td> <td> </td> </tr> 
    <tr height="60" valign=""> 
    <td align="center"> <img src="images/avatar/1.gif" /> </td> 
    <td colspan="3">msg1 <br> </tr> 
    </table> 
    </div> 
    另外 没有见过这样子调用的
    $smarty->display('header.htm');
    $smarty->display('guestbook.htm');
    $smarty->display('footer.htm');{ include file="header.htm" } 头部尾部可以这样子引用
      

  4.   

    那这段错了吗?$q = "SELECT * FROM cb_guestbook where ischeck=1 order by posttime limit ".($page-1)*$PageSize.",".$page*$PageSize;
    mysql_query("SET NAMES utf8"); 
    $msgrs = mysql_query($q,$dbh);
    //$a=mysql_num_rows($msgrs);
    while($msgres1=mysql_fetch_array($msgrs))
    {
    $array[] = array("msgid"=>$row["msgid"],
    "msg"=>$row["msg"],
    "posttime"=>$row["posttime"],
    "uname"=>$row["uname"]);
    }
    $smarty->assign('msgres',$array);
      

  5.   

    while($msgrow=mysql_fetch_array($msgrs))这句错了改一下
      

  6.   

    while($msgres1=mysql_fetch_array($msgrs))
    {
    $array[] = array("msgid"=>$row["msgid"],
    "msg"=>$row["msg"],
    "posttime"=>$row["posttime"],
    "uname"=>$row["uname"]);
    }你的$row那里来 改成$msgres1看下