Zend_Db_Table_Rowset jest iteratorem dla kolekcji obiektów Zend_Db_Table_Row. W zasadzie nie tworzysz sam instancji Zend_Db_Table_Rowset; zamiast tego odbierasz obiekt Zend_Db_Table_Rowset jako rezultat wywołania metody Zend_Db_Table::find() lub fetchAll(). Możesz wtedy przejść przez kolekcję obiektów Zend_Db_Table_Row i modyfikować je tak jak chcesz.
Pierwsza rzecz do zrobienia to utworzenie instancji klasy Zend_Db_Table.
<?php
// przygotujmy adapter
require_once 'Zend/Db.php';
$params = array (
'host' => '127.0.0.1',
'username' => 'malory',
'password' => '******',
'dbname' => 'camelot'
);
$db = Zend_Db::factory('PDO_MYSQL', $params);
// ustawmy domyślny adapter dla wszystkich obiektów Zend_Db_Table
require_once 'Zend/Db/Table.php';
Zend_Db_Table::setDefaultAdapter($db);
// połączmy się z tabelą w bazie danych
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
?>
Następnie pobieramy wiele rekordów z bazy danych używając metody Zend_Db_Table::find() z wieloma kluczami, lub używając metody Zend_Db_Table::fetchAll(); zwrócony wynik będzie obiektem Zend_Db_Table_Rowset który pozwoli ci na poruszanie się poprzez indywidualne obiekty Zend_Db_Table_Row w zestawie wierszy.
<?php
// pobieranie wielu wierszy z tabeli
$rowset = $table->fetchAll();
//
// $rowset jest teraz obiektem Zend_Db_Table_Rowset składającym się
// z obiektów Zend_Db_Table_Row, po jednym dla każdego wiersza
//
?>
Zend_Db_Table_Rowset implementuje interfejs SPL Iterator, co oznacza, że możesz przejść w pętli przez obiekty Zend_Db_Table_Rowset jak przez tablicę używając instrukcji foreach(). Każda wartość którą odbierzesz będzie obiektem Zend_Db_Table_Row, który odpowiada jednemu rekordowi z tabeli; możesz odczytywać, modyfikować i zapisywać właściwości dla każdego rekordu.
<?php
// połączmy się z tabelą w bazie danych
class RoundTable extends Zend_Db_Table {}
$table = new RoundTable();
// pobieranie wielu wierszy z tabeli
$rowset = $table->fetchAll();
// wyświetlamy wszystkie
foreach ($rowset as $row) {
// $row jest obiektem Zend_Db_Table_Row
echo "<p>" . htmlspecialchars($row->nobleTitle) . " "
. htmlspecialchars($row->firstName) . "'s "
. "ulubiony kolor to " . htmlspecialchars($row->favoriteColor)
. ".</p>\n";
// aktualizujemy ilość wyświetleń danego wiersza,
// (co odpowiada kolumnie w tabeli "times_displayed")
$row->timesDisplayed ++;
// zapisujemy rekord z nową informacją
$row->save();
}
?>