2015-03-27 1 views
0

Je vais avoir le code PHP suivant:Smarty: équipez colonnes de table html avec variable tableau Smarty

$Query1 = "Select ReportId,MailingFrequency from reports_scheduler WHERE UserId='$UserId'"; 
    $result1 = db::sql($Query1); 
    $X = array(); 
    while($x = mysql_fetch_assoc($result1)) { 
     $this->smarty->assign("X",$x['ReportId']);// This gives '1' 
     $this->smarty->assign("X",$x['MailingFrequency']);//This gives 'Saturday' 
    } 

Mon code HTML:

{html_table loop=$X} 
 
     <table id="resulttable" border="1"> 
 
     <tr> 
 
      <td>$X[0]</td> 
 
      <td>$X[1]</td> 
 
     </tr> 
 
    </table>
Quand je lance mon code, au lieu Lorsque vous affichez les valeurs '1' et 'Saturday', seul 'Saturday' est affiché. S'il vous plaît aider.

Répondre

1

Vous remplacez la variable smarty $X sans créer de groupe. Sur la 6ème ligne, vous définissez $X sur 1, sur la 7ème ligne, vous définissez $X sur 'Saturday'. La valeur précédente est écrasée.

Commencez par créer un nouveau tableau, puis placez-le dans le modèle Smarty.

$X = array(); 

while($x = mysql_fetch_assoc($result1)) { 
    $X[0] = $x['ReportId']; 
    $X[1] = $x['MailingFrequency']; 

    $this->smarty->assign("X", $X); 
} 

Lorsque vous avez seulement 1 lignes de DB, vous n'avez pas besoin d'utiliser la boucle while, accès directement au résultat, par exemple:

$x = mysql_fetch_assoc($result1); // instead of line with while() 
+0

Merci beaucoup. Ça a marché :) –