2017-07-06 28 views
0
$dbh = new PDO($dsn, $user, $password, array( 
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true)); 

$selectNumberTitle = $dbh->prepare("SELECT AdvertNumber, AdvertTitle FROM `adverts` WHERE AdvertNumber = ? "); 

foreach ($advertnumber as $i => $number) { 
    $selectNumberTitle->execute(array($number)); 
    foreach ($selectNumberTitle as $row) { 
     echo $row['AdvertNumber'] . ') ' . $row['AdvertTitle'] . "<br/>"; 
    } 
} 

上面的代码很好地工作。我需要smarty中的相同输出。如何在使用准备好的语句使用PDO并在foreach内执行时在smarty中显示数据?

回答

1
$selectNumberTitleMerge = array();  
foreach ($advertnumber as $i => $number) { 
    $selectNumberTitle->execute(array($number)); 
    foreach ($selectNumberTitle as $row) { 
     $selectNumberTitleMerge[] = $row; 
     echo $row['AdvertNumber'] . ') ' . $row['AdvertTitle'] . "<br/>"; 
    } 
} 
$smarty->assign('selectNumberTitleMerge', $selectNumberTitleMerge); 

和代码我的模板里:

{foreach $selectNumberTitleMerge as $r} 
    {$r.AdvertNumber}) 
    {$r.AdvertTitle} 
    <br> 
{foreachelse} 
    .. no results .. 
{/foreach} 
2

您可以将想要显示的数据保存到像数组这样的变量中。之后你assign this variable to smarty。因此,您将此问题分为两部分:

  1. 从数据库的数据中读取数据。
  2. 在你的smarty模板中显示变量(数组)。
+0

谢谢! @Progman“你将要显示的数据保存在一个像数组这样的变量中” - 这是我需要听到的。 – Trilochan

相关问题