PHP, While + Smarty

Strafi

Erfahrenes Mitglied
Hallo,

ich muss gerade ALTES in smarty um einsetzen. Es ist ne Whileschleife die auch einige berechnung macht und alles gleich ausgibt. nun muss ich aber die Ausgaeb irgendwie in in eine Smartyvariable packen und dann in template wie gewünscht ausgeben.

ich zeige euch mal die schleife.

PHP:
while($_ENTRY = $stmt->fetch(PDO::FETCH_ASSOC)) {
				$pInit = $_ENTRY['z_'.$_POST['laufzeit']] / 100;
				$qInit = 1 + $pInit / 12;
				$rate = round(($_GET['betrag'] * pow($qInit, $_POST['laufzeit']) * ($qInit - 1) / (pow($qInit, $_POST['laufzeit']) - 1) * 100)) / 100;
				$rate = number_format($rate, 2);
				
				$kosten = $rate * $_POST['laufzeit'] - $_POST['betrag'];
				$kosten = number_format($kosten, 2);
				
				$dauer_str = $_ENTRY['dauer'];
                                
				if($_ENTRY['zusage'] == 0) {
					$breite = 0;
				} else {
					$breite = $_ENTRY['zusage']/100*60;
				}

				
				$schnell = '<img src="'.$www.'images/schnelligkeit.gif" width="'.$breite.'" height="8" alt="Zusage" title="Die frage ist zu '.$_ENTRY['zusage'].'% sicher" />';
				

				$link = $_ENTRY['link'];
				$link_pic = $link;
				if($link != '') {
					$link = '<a rel="nofollow" href="'.$link.'" target="_blank"><img src="'.$www.'images/weiter.gif" alt="weiter" /></a>';
				} else {
					$link = '';
				}
				$bild = '<a rel="nofollow" href="'.$link_pic.'" target="_blank"><img src="'.$www.'images/'.$_ENTRY['id'].'.gif" alt="'.$_ENTRY['name'].'" /></a>';
				$pupuplink = ''.$www.'xxxx.php?bank='.$_ENTRY['id'].'';
				$name = $_ENTRY['name'].' (<a class="light" rel="nofollow" href="'.$pupuplink.'" onclick="return popup(this,500,500)">Info</a>)';
				
				
				$rstr .= '<tr><td>'.$bild.'</td><td>'.$name.'</td><td class="t_3"><strong>'.number_format($_ENTRY['z_'.$_GET['laufzeit']], 2).'%</strong></td><td class="t_4">'.$rate.' &euro;<br /><span class="light">'.$kosten.' &euro;</span></td><td>'.$dauer_str.'<br />'.$schnell.'</td><td><img src="'.$www.'images/'.$_ENTRY['sterne'].'_sterne.gif" alt="Sterne" /><br />'.$_ENTRY['bewertung'].'</td><td class="t_7">'.$link.'</td></tr>';
			}
			$rstr .= '</table>';
		}

den HTML-Teil in tpl zu packen ist klar... nur wie übergebe ich die alle daten am besten in eine variable? So das ich sie dann im tpl mit einer foreach verarbeiten kann.

Grüße
 
Hi,
also du willst alles in eine Variabel packen und dann per foreach im template ausgeben.
Das ist eigentlich gar nicht so schwer :

pack die ganzen Werte die du hast ein ein einziges Assoziertes Array packen, beispiel:

PHP:
while(blablabla){
    $R['zusage'] = "Daten";
    $R['kosten']   = "Daten Kosten";
    $R['www']     = "Daten www";
     ...
     usw
     // Die ganze zeile nun in ein RESULT Array übergeben
     $RESULT[] = $R;
}

Dann einfach RESULT in das Template assignen.

im Template einfach nur noch
PHP:
{foreach item=res from=$RESULT}
         <img src="{$res.www}images/schnelligkeit.gif" width="{$res.breite}" height="8" alt="Zusage" title="Die frage ist zu {$res.zusage}% sicher" />
{/foreach}

Du kannst in der foreach schleife dann jeden wert den du vorher im Assoc Array zugewiesen hast durch einen punkt getrennt zugreifen also wie du es ja siehst bei $res.www zum beispiel.

Hoffe das hilft dir weiter :)
 
Zurück