当前位置:Gxlcms > PHP教程 > 关于smarty取oracle数据数组后传递时,只取每个字段第一个字符的问题

关于smarty取oracle数据数组后传递时,只取每个字段第一个字符的问题

时间:2021-07-01 10:21:17 帮助过:3人阅读

我刚接触smarty,在获取oracle数据以后,传递时发现只取每个字段的第一个字符,而且还是乱码。

代码如下:
smarty.php

assign('ssss',$array);	$tpl->assign("News_CH", $array);	unset($array);	$tpl->display('smarty.tpl');?>


以下是smarty.tpl

{--section name=customer loop=$News_CH--}
  • {--$News_CH[customer].BPCNAM--}
  • {--/section--}


    请高手不吝赐教,哪里出了问题。谢谢!


    回复讨论(解决方案)

    先不管 smarty
    在 $array = oci_fetch_array($stmt, OCI_BOTH);之后
    print_r($array);
    看看都是些什么

    谢谢 xuzuning秒回,显示出来的结果一切正常,中文显示没有乱码,现在是传递到smarty.tpl上出现乱码,而且每个字段值出现第一个字符。

    最好给我看看



    就是这个效果

    如果我自定义一个array,传递数据不会乱码,但是从Oracle数据库读取的话,就会出现上述问题!

    我要看到你从数据库读出的数据!

    按 oci_fetch_array($stmt, OCI_BOTH) 应该是下标数组
    那么 $News_CH[customer].BPCNUM 就是错的

    但需要看到数据才能确定

    在smarty.php 中 print_r($array);exit(); 看看是什么结果。

    可能你输出的不是一个正常的数组,看下输出的数据有没有问题;

    谢谢各位的帮助,是我的数组有问题。
    后来用mysql测试了一下,是数组赋值错了,用一下代码就解决了。

    $query_sql = "SELECT * FROM mc_admingroups";        //执行查询语句  返回一个结果集        $query_res = mysql_query($query_sql,$conn);        $array=array();           while ($row = mysql_fetch_array($query_res, MYSQL_ASSOC))           {               $array[] = $row;           }

    人气教程排行