用smarty遍历php的的while循环语句

以下代码是我获取数据库的列表,我想问下如何写成smarty的模式啊?

while ($row=mysql_fetch_array($query)){
echo $row[0];
echo $row[1];
echo $row[2];
echo $row[3];
echo "<br>";
}

第1个回答  2012-02-15
先把这些数据 赋给一个数组,然后再用smarty循环追问

具体怎么赋给一个数组啊?读出来的文章都是不同的,难道需要遍历么?求您帮忙写下!!

追答

";
}

改为

$data = array();
while ($row=mysql_fetch_array($query)){
$data[] = $row;
}

在控制器里这么传值给smarty模板
$this->smarty->assign('data', $data);

在模板里这么写

追问

哇!高手啊。。。佩服,佩服。。非常感谢您啊,看来我今天运气不错哈哈!!

不过我运行的时候,读出的数据全是问号“?”是怎么回事?但是单独调用没有这回事 呵呵!
这是模板输出的结果:
6 ? ? ? ? ? ? ? ? 7 ? ? ? ? ? ? ? ? 9 ? ? ? ? ? ? ? ? ? ? ? ?

再就是我把您的$this->smarty->assign('data', $data);改成$smarty->assign('data', $data);才能正常运行,否则就是500错误。

追答

嗯,因为我用的是框架 自己集成Smarty 所以才这样用$this->smarty->assign('data', $data);
至于上面乱码的情况,因为数字显示正常,那就是字符集的问题。连接数据库的字符集是什么?假如是utf8 那么 在模板面 顶部加上

一般取数据出现乱码一般是这三个地方字符集没有对应
1.连接数据库时的字符集。
2.HTML模板面的字符集。
3.PHP文件字符集格式。

追问

恩恩,非常感谢。。。
首先说下,数据库字符集是gbk的,单独在同一个页面显示没有问题
html字符集我复制出来了,

PHP文件字符集格式我有这句应该没有问题吧?
mysql_query("set names 'gbk'")
您的qq多少,我详细让您看下,今晚上我多回答点问题,用来给你加分。。哈哈。。。

追答

497186952, 加分无所谓,解决问题最重要

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网