如何在smarty中访问php while循环变量

时间:2013-12-01 20:27:46

标签: php smarty

我已经用我糟糕的逻辑完成了一个php页面但工作正常...我想将该页面的数据访问到smarty页面。页面名称为dealer.php,主题页面名称为dealers.html

我想将while循环数据访问为smarty

$q1=mysql_query("select * from class_users where active=1 and store=1 ORDER BY rand() limit 8");

while ($ev= mysql_fetch_object($q1)){
$did = "$ev->id";
$dname = "$ev->contact_name";
$drating     = "$ev->rating";
$rating = round($drating);
$dnorating = "$ev->no_ratings";
$dphoto  = "$ev->photo";
$dc  = "$ev->company_name";
$store_banner    = "$ev->store_banner";
$durl = preg_replace('~[^A-Za-zds-]+~u', '',  strtolower($dname));
}

这意味着我将数据库中的数据存储在变量中......所以我想将这些变量用于智能模板文件中。如何分配while循环以及如何在smarty中获取while循环变量...?

dealer.php $ smarty-> assign(dealer_name,$ dname);

dealers.html {$ dealer_name}

一次只显示一个名字。需要使用上面的php逻辑从数据库中获取所有经销商。只需告诉我如何在dealer.html中访问这些变量

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是将其分配到array然后循环遍历数组

$data = array();
while ($ev= mysql_fetch_assoc($q1)){
    $data[] = $ev;
}
$smarty->assign('users', $data);

然后在你的Smarty模板中(注意,这种语法假设为Smarty 3或更高版本)

{foreach $users as $user}
    <div>{$user.contact_name} - {$user.contact_name}</div>
{/foreach}