发新话题
打印

PHPlib模板实现几行几" 列 " 的输出

PHPlib模板实现几行几" 列 " 的输出

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++;
}
--------------------------------------------------------------------------------




-->

TOP

发新话题