2017-07-06 61 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

相關問題