smarty循环遍历数据库表后在前台显示

本文介绍了一种使用Smarty模板引擎配合PDO进行数据库操作的方法。通过将数据库查询结果存入数组并传递给Smarty模板,实现前后端分离的效果。这种方式类似于JAVA的操作方式,能够有效地提升代码的维护性和扩展性。

1,smarty使用PDO方式循环遍历

<?php
//初始化
require '../libs/Smarty.class.php';
// require 'chuan.php';
$smarty = new Smarty;

//配置
// $smarty->debugging = true;
$smarty->caching = true;
$smarty->force_compile= true;


//基本操作

function cc(){
try{
            $dbh = new PDO('mysql:host=localhost;dbname=sm', 'root', ''); 
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    
            $dbh->exec('set names utf8'); 

            /*查询*/  
            $stmt = $dbh->prepare('SELECT * FROM user');    
            $stmt->execute();    
            $arr = array();
            while($row = $stmt->fetch(PDO::FETCH_ASSOC))
            {       
                   $arr[]=$row ;      
            }   
            return $arr;

            // 现在运行完成,在此关闭连接
            $dbh = null;
            }catch(PDOException$e){  
            print"Error!:".$e->getMessage()."<br/>";  
            die();  
            }  
}


$smarty->assign('ids',cc());


//显示设置
$smarty->display('user.tpl');

2,前台显示

{config_load file="test.conf" section="setup"}
{include file="header.tpl" title=foo}
<table  border="1" cellspacing="0" cellpadding="0">
        <th>姓名</th>
        <th>地址</th>
        {foreach $ids as $color}
        <tr align="center">
            <td>{$color.name}</td>
            <td>{$color.info}</td>
         </tr>
        {/foreach}
</table>
{include file="footer.tpl"}

总结:这种操作方式摈弃了原始PHP把数据库连接放到页面去操作,类似JAVA的操作方式,在后台遍历数据库,把结果集RS放置在一个数组ARR里面,然后把ARR返还给方法,把方法赋予一个变量,前台进行循环取值;

这个JAVA很相似;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值