2017-07-06 6 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/>"; 
    } 
} 

Le code ci-dessus fonctionne bien. J'ai besoin de la même sortie dans smarty.Comment afficher des données dans smarty lors de l'utilisation de PDO avec une instruction préparée et s'exécuter dans foreach?

Répondre

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); 

et code dans mon modèle:

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

Vous sauvegardez les données que vous souhaitez afficher dans une variable comme un tableau. Après cela, vous assign this variable to smarty. Donc, vous divisez ce problème en deux:

  1. Lire les données de la base de données dans un tableau.
  2. Afficher la variable (tableau) dans votre modèle smarty.
+0

Thank you! @Progman "Vous enregistrez les données que vous voulez afficher dans une variable comme un tableau" - C'est ce que j'avais besoin d'entendre. – Trilochan