大哥,你贴出来的代码太难看了。将已经分析过的区块清空,用$tt->set_var("sun");这一段也不对吧
for($j=0;$j<$fieldnum;$j++)
{
$tt->set_var($tplvar,$text[$j]);
$tt->parse("sun",$tplrow,true);
}
$tt->set_var($tplvar,"<tr>");
$tt->parse("sun",$tplrow,true);
}区块嵌套用不同的名称好

解决方案 »

  1.   

    一个简单的例子
    for($i=0;$i<10;$i++){
       $tt->set_var("name","tom");
       $arr=array("98","25","47","36","51");
       for($j=0;$j<=4;$j++){
         $tt->set_var("archieve",$arr["$j"]);
         $tt->parse("b1s","b1","true");
       }
       $tt->parse("b2s","b2","true");
       $tt->set_var("b1s");//加上这一句
    }
      

  2.   

    重新贴一下init.inc的代码,请各位帮忙修改,<?
    class dbinit
    {
    var $connect;
    function dbinit()
    {
    include("phplib/template.inc");
    }
    .
    .
    .
    .
    . function indexshow($dtname,$tplfile,$field,$tplvar,$tplnum,$to)
    {
    $tt=new template("template/");
    $tt->set_file("hand",$tplfile); for($i=0;$i<$tplnum;$i++)
    {
    $query="select ".$field." from ".$dtname." where class=\"".$tplvar[$i]."\" limit 0,".$to[$i]."";
    $result=mysql_query($query);
    if($result==false)
    {
    echo "query waring";
    exit();
    }
    $rownum=mysql_num_rows($result);
    $fieldnum=mysql_num_fields($result);
    if($fieldnum>1) //当查询字段数多于一个时(这里暂时不管,我现在只查询title)
    {
    for($j=0;$j<$rownum;$j++)
    {
    $text=mysql_fetch_row($result); for($j=0;$j<$fieldnum;$j++)
    {
    $tt->set_var($tplvar,$text[$j]);
    $tt->parse("sun",$tplrow,true);
    }
    $tt->set_var($tplvar,"<tr>");
    $tt->parse("sun",$tplrow,true);
    } $tt->parse("pp","hand",true);
    $tt->p("pp");
    }else
    //////////////// 当查询字段只为单数时 //////////////
    {
    for($j=0;$j<$rownum;$j++)
    {
    $index=mysql_fetch_row($result);
    $tt->set_var($tplvar[$i],$index[0]);
    $tt->parse("sun","row".$i,ture);
    $tt->set_var($tplvar[$i],"|<br>");
    $tt->parse("sun","row".$i,ture); } } }
    $tt->parse("out","hand");
    $tt->p("out");

    }

    }
    ?>default.php/////////
    <?
    include("include/init.inc");
    $newshow=new dbinit;
    $newshow->coninit("sun");
    $field="title";
    $tplfile="index.html";
    $tplvar=array(zhxw,it,world);
    $tplnum=count($tplvar);
    $to=array(10,2,5);
    $dtname="sun_index";
    $newshow->indexshow($dtname,$tplfile,$field,$tplvar,$tplnum,$to);?>
    ///////////
    程序输出如下:
    综合新闻 
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    IT电脑资讯 |
    IT电脑资讯 |
    走向世界 |
    走向世界 |
    走向世界 |
    走向世界 |
    走向世界 |
      
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    IT电脑资讯 |
    IT电脑资讯 |
    走向世界 |
    走向世界 |
    走向世界 |
    走向世界 |
    走向世界 |
      综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    综合新闻 |
    IT电脑资讯 |
    IT电脑资讯 |
    走向世界 |
    走向世界 |
    走向世界 |
    走向世界 |
    走向世界 |
     
    这三段内容分别出现在我的三个区块里{zhxw},{it},{world}
    晕倒啊!!!!!!!!!!!!! 
     
      

  3.   

    晕还是贴的不好,,难看啊,,有心帮助的加我QQ聊一下啊,,我要当面请教一下啊!!!!!!
    QQ:250831819
    EMAIL:[email protected]
      

  4.   

    别外请问一下ccterren,
    我刚贴的模板没有嵌套吧????
    <!--    BEGIN row      -->
       {text1}
          <!--    BEGIN row2     -->
               {text2}
           <!--      END row2        -->
    <!--     END row1         -->
    这才算嵌套吧!!!!!
    不明白啊,,,晕,,,,,
    QQ:250831819
    加QQ聊吧,,我很急啊,QQ更快!!!!!
      

  5.   

    大哥,对不起啊,我的上qq账号被人借走了,我现在上不了QQ.你的代码一贴,我马上就看晕掉了。
      

  6.   

    文件说明:本示例用到的两个模板文件都存放在与程序同级的templates文件夹内,你可以在block类中设置此文件夹路径。模板文件:block.htm
    ----------------------------------------------
    <table>
    <!-- BEGIN rowlist -->
    <tr>
    <td height=20><a href="{url}">{name}</a></td>
    </tr>
    <!-- END rowlist -->
    </table>模板文件:main.htm
    ----------------------------------------------
    <table>
    <tr>
    <td height=20>{title1}{title2}{title3}</td>
    </tr>
    </table>程序文件:block.class.php
    ----------------------------------------------
    <?php
    /**
    *  文件: block.class.php
    *  类名: block类
    *  描述: 本类用于在同一文件中的多块输出,其核心思想是用模板嵌套来处理。因为块的命名不容易控制,而模板文件的句柄名是很容易控制的。这正是采用此方法的原因。
    *  其他: 由于时间仓促,只完成了基本的文件显示功能。
    */
    require_once "template.class.php";
    class block
    {
        var $t;//类句柄
        var $templates_dir = "templates";//模板文件夹    /**  BEGIN function
        *
        *   作者:偶然
        *   功能:构造函数,初始化模板类
        *   时间:2003.12.14
        *
        */
        function block()
        {
            $this->t = new Template($this->templates_dir);
        }    /**  BEGIN function
        *
        *   作者:偶然
        *   功能:设置文件句柄
        *   时间:2003.12.14
        *
        */
        function set_file($page_handle,$page)
        {
            $this->t->set_file($page_handle,$page);
        }
        
        /**  BEGIN function
        *
        *   作者:偶然
        *   功能:文件解析
        *   时间:2003.12.14
        *
        */
        function parse($parse_handle,$parse_file)
        {
            $this->t->parse($parse_handle,$parse_file);
        }    /**  BEGIN function
        *
        *   作者:偶然
        *   功能:文件解析输出
        *   时间:2003.12.14
        *
        */
        function pparse($parse_handle,$parse_file)
        {
            $this->t->pparse($parse_handle,$parse_file);
        }    /**  BEGIN function
        *
        *   作者:偶然
        *   功能:解析数组
        *   时间:2003.12.14
        *
        */
        function parsearray($array,$file_handle,$parse_handle)
        {
            $this->t->set_var("RL");
            $this->set_file($file_handle,"block.htm");
            $this->t->set_block($file_handle,"rowlist","RL");
            foreach($array as $val)
            {
                /* 此处可以增添加更多的变量替换 */
                $this->t->set_var("url",$val['url']);
                $this->t->set_var("name",$val['name']);
                $this->t->parse("RL","rowlist",true);
            }
            $this->parse($parse_handle,$file_handle);
        }
    }
    ?>程序文件:showpage.php
    ----------------------------------------------
    <?php
    /***********************************************************
        Copyright (C), 2003, ustb
        FileName: showpage.php
        Author: 偶然       Version : 1.0         Date: 2004.1.26
        Description:     block类示例      
        Version:         1.0
        Function List:   parsearray():用以解析多块,随参数的不同而解析不同,你可以将参数放到数组中,然后作进一步的优化,那样代码会更少。
    其余函数说明省略。
        1. -------
        History:         // 历史修改记录
              <author>  <time>   <version >   <desc>
               偶然     04/1/26     1.0       创建模块  
    ************************************************************/
    require_once "block.class.php";
    $b = new block();$item1 = array( array('name' => 'test1', 'url' => '1.php'),
                    array('name' => 'test2', 'url' => '2.php'),
                    array('name' => 'test3', 'url' => '3.php'));$item2 = array( array('name' => 'test4', 'url' => '4.php'),
                    array('name' => 'test5', 'url' => '5.php'),
                    array('name' => 'test6', 'url' => '6.php'));$item3 = array( array('name' => 'test7', 'url' => '7.php'),
                    array('name' => 'test8', 'url' => '8.php'),
                    array('name' => 'test9', 'url' => '9.php'));$b->set_file("page_main","main.htm");
    $b->parsearray($item1,"title1","title1");
    $b->parsearray($item2,"title2","title2");
    $b->parsearray($item3,"title3","title3");
    $b->pparse("out","page_main");
    ?>