大哥,你贴出来的代码太难看了。将已经分析过的区块清空,用$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);
}区块嵌套用不同的名称好
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);
}区块嵌套用不同的名称好
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");//加上这一句
}
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}
晕倒啊!!!!!!!!!!!!!
QQ:250831819
EMAIL:[email protected]
我刚贴的模板没有嵌套吧????
<!-- BEGIN row -->
{text1}
<!-- BEGIN row2 -->
{text2}
<!-- END row2 -->
<!-- END row1 -->
这才算嵌套吧!!!!!
不明白啊,,,晕,,,,,
QQ:250831819
加QQ聊吧,,我很急啊,QQ更快!!!!!
----------------------------------------------
<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");
?>