使用smarty将数组转换为错误的字符串转换

使用smarty将数组转换为错误的字符串转换

问题描述:

I'm trying to print an array on smarty template which I made on php. And I get this error :

Notice: Array to string conversion in C:\wamp\www\smarty\templates_c\e43b807af9cc8df7d350c3baf9e47f167c9520a0.file.index.tpl.php on line 87

I couldn't figure how to solve it. Can you tell me where is the error?

Here is the part where I make the array in php

function get_db_results()
{
    $mysql = "SELECT COUNT(*) FROM question";
    $myresult = mysql_query($mysql);
    $myr = mysql_fetch_row($myresult);
    SmartyPaginate::setTotal($myr[0]);
    $index = SmartyPaginate::getCurrentIndex();
    $limit =SmartyPaginate::getLimit();
    $rsql = "SELECT question_title FROM question ORDER BY question_id DESC LIMIT $index, $limit ";

    $rresult = mysql_query($rsql);
    //$column = array();

    while($rrow = mysql_fetch_array($rresult , MYSQL_ASSOC))
    {
        $column[]=$rrow;

    }


    return $column;
}
$smarty->assign('results', get_db_results());

And here is the smart part :

{section name=res loop=$results}
    {$results[res]}
{/section}

我正在尝试在php上创建的smarty模板上打印一个数组。 我收到此错误: p>

注意:第87行的C:\ wamp \ www \ smarty \ templates_c \ e43b807af9cc8df7d350c3baf9e47f167c9520a0.file.index.tpl.php中的数组到字符串转换 p >

我无法弄清楚如何解决它。 你能告诉我错误在哪里吗? p>

这是我在php中创建数组的部分 p>

  function get_db_results()\  n {
 $ mysql =“SELECT COUNT(*)FROM question”; 
 $ myresult = mysql_query($ mysql); 
 $ myr = mysql_fetch_row($ myresult); 
 SmartyPaginate :: setTotal($ myr [0  ]); 
 $ index = SmartyPaginate :: getCurrentIndex(); 
 $ limit = SmartyPaginate :: getLimit(); 
 $ rsql =“SELECT question_title FROM question ORDER BY question_id DESC LIMIT $ index,$ limit”; \  n 
 $ rresult = mysql_query($ rsql); 
 // $ column = array(); 
 
 while($ rrow = mysql_fetch_array($ rresult,MYSQL_ASSOC))
 {
 $ column [] =  $ rrow; 
 
} 
 
 
返回$ column; 
} 
 $ smarty-> assign('results',get_db_results()); 
  code>  pre> \  n 
 

以下是智能部分: p>

  {section name = res loop = $ results} 
 {$ results [res]} 
 {/  }} 
  code>  pre> 
  div>

Change {$results[res]} to {$results.res} Assuming you have key "res" in your array

By looking at your function I guess it should be :

{$results.question_title}

Here is the solution :

{foreach from=$results item=results name=results}
    {$results.question_title}
{/foreach}

First delete all cache file from C:\wamp\www\smarty\templates_c\, after that try like this {$results[res].YOUR FIELD NAME} because you used {section}{/section}.

e.g. {$results[res].question_title}

Hope help you.