[PHP] Foreach bei Objekten

unregiert

abgemeldet
22 April 2006
451
26
PHP:
while($data = mysql_fetch_object($result))
{
  $smarty->assign(/* name der spalte */, $data->/* name der spalte */);
}
Ich hole Daten mit einem MySQL Query. Diese Daten möchte ich nun mit Smarty "assignen". Weil es aber ca. 35 Spalten in der Tabelle gibt, wäre es mühselig 35x den Wert assignen. Dazu habe ich mir gedacht, foreach zu benutzen. Aber wie geht dies?
 
Wäre da nicht das hier viel einfacher:
PHP:
$row = mysql_fetch_assoc($result);
$smarty->assign($row);
Die while-Schleife macht doch ohnehin wenig Sinn, da sie immer wieder die Einträge überschreiben würde.
 
tleilax schrieb:
Wäre da nicht das hier viel einfacher:
PHP:
$row = mysql_fetch_assoc($result);
$smarty->assign($row);
Die while-Schleife macht doch ohnehin wenig Sinn, da sie immer wieder die Einträge überschreiben würde.
Funktioniert leider nicht, weil Smarty keine Variabel bekommt. Im debuge-Fenster ist keine der benötigten Dateien abgebildet.
 
Hmmm... ich meine, irgendwo mal gelesen zu haben, dass man Smarty ohne Probleme ein Array, statt einem Objekt übergeben kann. Wenn Du nun also die Daten aus der DB in ein Array einliest, sollte es ungefair so funktionieren:

PHP:
$query = "SELECT Eins, Zwei, Drei FROM news;";
$newsqry = mysql_query($query) OR die(mysql_error());

$news = array(); // leeres Arrayelement erzeugen
while($row = mysql_fetch_assoc($newsqry)) {
        $news[] = $row;    
}
$smarty->assign('/* name der spalte */', $news); // In Smarty speichern

Naja, so in etwa könnte es vielleicht funktionieren :roll:

Mal sehen, ob ich die Seite mit dem Tutorial nochmal finde. Wenn, dann poste ich mal den Link hier...