用
PHPlib 模板系统来控制几行几列的输出
实现想输出几列就几列的效果
代码:--------------------------------------------------------------------------------
复制内容到剪贴板
代码:
<!-- Start index_body.html -->
<table border="1" style="border-style: 1px solid" bgcolor="#000000">
<!-- BEGIN data_tr -->
<tr bgcolor="#FFFFFF">
<!-- BEGIN data_td -->
<td>{row_table}</td>
<!-- END data_td -->
</tr>
<!-- END data_tr -->
</table>
<!-- Over index_body.html -->--------------------------------------------------------------------------------
PHP代码:--------------------------------------------------------------------------------
复制内容到剪贴板
代码:
<?php
include("./includes/TEMPLATE.INC");
include("./includes/adodb/adodb.inc.php");
$db = NewADOConnection('mysql');
$db -> Connect("localhost", "root", "password", "mytest");
$tpl = new template("./templates/");
$tpl -> set_file("main","index_body.html");
$tpl -> set_block("main","data_td","td"); //注意这里的 block书写顺序
$tpl -> set_block("main","data_tr","tr"); //写反了,就提示出错!
$strSQL = "select * from myuser";
$db->SetFetchMode(ADODB_FETCH_ASSOC); // Return associative array
$result = $db -> Execute($strSQL);
if($result === false) die("Error!Query Error!");
$fieldCount = $result -> FieldCount();
while(!$result -> EOF) {
for ($i=0; $i<$fieldCount+1; $i++) { //更改1的数字,就可以实现要几列就几列
$tpl->set_var("row_table",$result->Fields('userName'));
$tpl->parse("td","data_td",true);//的输出效果。默认2列。此处为1,故输出
$result -> MoveNext(); //输出3列;如果要输出1列,就由加1改为
} //减1即可!
$tpl->parse("tr","data_tr",true);
$tpl->set_var("td","");
}
$tpl->parse('Output', 'main');
$tpl->p('Output');
?>--------------------------------------------------------------------------------
正确的代码:
PHP代码:--------------------------------------------------------------------------------
复制内容到剪贴板
代码:
<?php
include("./includes/TEMPLATE.INC");
include("./includes/adodb/adodb.inc.php");
$db = NewADOConnection('mysql');
$db -> Connect("localhost", "root", "password", "mytest");
$tpl = new template("./templates/");
$tpl -> set_file("main","index_body.html");
$tpl -> set_block("main","data_td","td");
$tpl -> set_block("main","data_tr","tr");
$strSQL = "select * from myuser";
$result = $db -> Execute($strSQL);
if($result === false) die("Error!Query Error!");
$fieldCount = $result -> FieldCount();
// Number of columns 1,2,3,4.....
$numOfColumn = 4;
while(!$result -> EOF) {
for ($i=0; $i<$numOfColumn; $i++) {
$str = "";
for ($j=0; $j<$fieldCount; $j++) {
$str .= $result->Fields($j)." ";
}
$tpl->set_var("row_table",$str);
$tpl->parse("td","data_td",true);
$result -> MoveNext();
}
$tpl->parse("tr","data_tr",true);
$tpl->set_var("td","");
}
$tpl->pparse('Output', 'main');
?>--------------------------------------------------------------------------------
请参考:
PHPlib Template Examples * parse a "list in a list"
下面是另外一种方法
PHP代码:--------------------------------------------------------------------------------
复制内容到剪贴板
代码:
<table>
<tr>
<!-- BEGIN data_td -->
<td>
{row_table}
</td>
{br}
<!-- EBD data_td -->
</tr>
</table>--------------------------------------------------------------------------------
PHP代码:--------------------------------------------------------------------------------
复制内容到剪贴板
代码:
$i = 1;
while(!$result -> EOF)
{
$tpl -> set_var("p");
$tpl -> set_var("row_table",$result -> fields[$i]);
if( $i % 2 == 0 )
{
$br='</tr><tr>'; }
else
{
$br = '';
}
$tpl->set_var ( 'br', $br );
$tpl -> parse("p","data_td",true);
$result -> MoveNext();
$i++;
}--------------------------------------------------------------------------------
-->