Zend_Db_Table_Rowset ist ein Iterator für Sammlungen von Zend_Db_Table_Row Objekten. Im Allgemeinen kannst du Zend_Db_Table_Rowset nicht selbst instanziieren; stattdessen erhältst du eine Zend_Db_Table_Rowset Objekt als Rückgabewert von einem Zend_Db_Table::find() oder fetchAll() Aufruf. Du kannst dann durch die gesammelten Zend_Db_Table_Row Objekte iterieren und sie verändern, wie du möchtest.
Als erstes muss die Zend_Db_Table Klasse instanziiert werden.
<?php // Einen Adapter erzeugen require_once 'Zend/Db.php'; $params = array ( 'host' => '127.0.0.1', 'username' => 'malory', 'password' => '******', 'dbname' => 'camelot' ); $db = Zend_Db::factory('PDO_MYSQL', $params); // Den Default Adapter für alle Zend_Db_Table Objekte setzen require_once 'Zend/Db/Table.php'; Zend_Db_Table::setDefaultAdapter($db); // Zu einer Tabelle in der Datenbank verbinden class RoundTable extends Zend_Db_Table {} $table = new RoundTable(); ?>
Als nächstes empfänge mehrere Datensätze aus deiner Datenbank durch Verwendung von Zend_Db_Table::find() mit mehreren Schlüssel oder durch Verwendung von Zend_Db_Table::fetchAll(); das zurückgegebene Ergebnis wird ein Zend_Db_Table_Rowset Objekt sein, dass dich durch die individuellen Zend_Db_Table_Row Objekte in dem Zeilensatz iterieren lässt.
<?php // hole mehrere Datensätze aus der Tabelle $rowset = $table->fetchAll(); // // $rowset ist nun ein Zend_Db_Table_Rowset Objekt bestehend aus // einem Zend_Db_Table_Row Objekt pro Datensatz im Ergebnis // ?>
Zend_Db_Table_Rowset implementiert das SPL Iterator Interface, was bedeutet, dass du Zend_Db_Table_Rowset Objekte wie Arrays mittels foreach() durchlaufen kannst. Jeder Wert, den du auf dieser Weise erhältst, wird ein Zend_Db_Table_Row Objekt sein, das einem Datensatz in deiner Tabelle entspricht; du kannst die Eigenschaften des Datensatzes anzeigen, ändern oder speichern.
<?php // Zu einer Tabelle in der Datenbank verbinden class RoundTable extends Zend_Db_Table {} $table = new RoundTable(); // hole mehrere Datensätze aus der Tabelle $rowset = $table->fetchAll(); // zeige sie alle an foreach ($rowset as $row) { // $row ist ein Zend_Db_Table_Row Objekt echo "<p>" . htmlspecialchars($row->nobleTitle) . " " . htmlspecialchars($row->firstName) . "'s " . "favorite color is " . htmlspecialchars($row->favoriteColor) . ".</p>\n"; // aktualisiere die Anzahl, wie oft diese Zeile angezeigt worden ist, // (was auf eine Spalte "times_displayed" in der Tabelle abgebildet wird) $row->timesDisplayed ++; // speichere den Datensatz mit den neuen Informationen $row->save(); } ?>