php smarty模版引擎高手请进
index.php如下<?phprequire'libs/Smarty.class.php';$tmp=newSmarty;$tmp->template_dir="tem...
index.php如下
<?php
require 'libs/Smarty.class.php';
$tmp = new Smarty;
$tmp->template_dir = "templates/templates";
$tmp->compile_dir = "templates/templates_c";
$tmp->config_dir = "templates/config";
$tmp->cache_dir = "templates/cache";
$tmp->caching = false;
$tmp->left_delimiter = '<{';
$tmp->right_delimiter = '}>';
include_once ('db.class.php');
$db = new mysql();
$qu = $db->query('select * from `test`');
$a = $qu[0][pid];
$b = $qu[0][name];
$c = $qu[0][pass];
$tittle = "带你跑着玩";
$body = "轻烟飘过";
$tmp->assign("title", $tittle);
$tmp->assign("body", $body);
$tmp->assign("pid", $a);
$tmp->assign("name", $b);
$tmp->assign("pass", $c);
$tmp->display('index.tpl');
?>
index.tpl如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ANSI">
<title><{$tittle}></title>
</head>
<body>
<p><{$body}></p>
<p><{$a}></p>
<p><{$b}></p>
<p><{$c}></p>
</body>
</html>
现在的问题是能显示出来"轻烟飘过",其他的不能显示,从mysql库中查找出来的数据$a$b$c单独输出能输出,所有路径可写,并且存在,检查N遍,没有错误,请教高手,求正确答案, 展开
<?php
require 'libs/Smarty.class.php';
$tmp = new Smarty;
$tmp->template_dir = "templates/templates";
$tmp->compile_dir = "templates/templates_c";
$tmp->config_dir = "templates/config";
$tmp->cache_dir = "templates/cache";
$tmp->caching = false;
$tmp->left_delimiter = '<{';
$tmp->right_delimiter = '}>';
include_once ('db.class.php');
$db = new mysql();
$qu = $db->query('select * from `test`');
$a = $qu[0][pid];
$b = $qu[0][name];
$c = $qu[0][pass];
$tittle = "带你跑着玩";
$body = "轻烟飘过";
$tmp->assign("title", $tittle);
$tmp->assign("body", $body);
$tmp->assign("pid", $a);
$tmp->assign("name", $b);
$tmp->assign("pass", $c);
$tmp->display('index.tpl');
?>
index.tpl如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ANSI">
<title><{$tittle}></title>
</head>
<body>
<p><{$body}></p>
<p><{$a}></p>
<p><{$b}></p>
<p><{$c}></p>
</body>
</html>
现在的问题是能显示出来"轻烟飘过",其他的不能显示,从mysql库中查找出来的数据$a$b$c单独输出能输出,所有路径可写,并且存在,检查N遍,没有错误,请教高手,求正确答案, 展开
3个回答
展开全部
$tmp->assign("pid", $a);
$tmp->assign("name", $b);
$tmp->assign("pass", $c);
在smarty模板上使用时,上面是指将 pid变量使用$a的值,Smarty会自动将pid变为可以让Smarty使用的变量。
<{$pid}>
<{$name}>
<{$pass}>
-----
纳闷了~~你用$title和$body正确,怎么调用别的就错。
$tmp->assign("name", $b);
$tmp->assign("pass", $c);
在smarty模板上使用时,上面是指将 pid变量使用$a的值,Smarty会自动将pid变为可以让Smarty使用的变量。
<{$pid}>
<{$name}>
<{$pass}>
-----
纳闷了~~你用$title和$body正确,怎么调用别的就错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$qu = $db->query('select * from `test`');
这里有错,$db->query返回的只是query,并没有结果,还需要使用fetch_array之类的mysql方法才能获得结果的。
比如
$result = array();
while($res = $db -> fetch_array($qu)){
$result[] = $res;
}
$tmp->assign("result", $result);
然后在模板里面用foreach循环出来一列新闻:
{foreach from=$result item=result}
<p>{$result.title}</p>
{/foreach}
这里有错,$db->query返回的只是query,并没有结果,还需要使用fetch_array之类的mysql方法才能获得结果的。
比如
$result = array();
while($res = $db -> fetch_array($qu)){
$result[] = $res;
}
$tmp->assign("result", $result);
然后在模板里面用foreach循环出来一列新闻:
{foreach from=$result item=result}
<p>{$result.title}</p>
{/foreach}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询