Procházení výsledku $this->connection->query(…) v cyklu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Richard.Bazant
- Člen | 8
Zdravím všechny,
narazil jsem na zvláštní věc, pokud dostanu data pomocí
<?php
public function getAll()
{
$q = "SELECT * FROM semestr;";
return $this->connection->query($q);
}
?>
a iteruji je v cyklu foreach, tak napoprvé se kolekce projde celá a
v pořádku.
Problém vznikne pokud chci kolekci iterovat znovu, již žádná data
nedostanu.
<?php
$kolekce = $this->myRepository->getAll();
foreach($kolekce as $k) {
//Do something
}
// Tady ok
reset($kolekce);
foreach($kolekce as $k) {
//Do something
}
//Tady už není OK
?>
A to i když před druhým cyklem zkusím zavolat reset na $kolekce.
Poradí mi někdo, v čem je problém.
Děkuji.
- David Matějka
- Moderator | 6445
to je chyba PDO, v nette 2.1 uz tento problem neni, jelikoz se uz nededi od PDO* trid, ale je vyuzita kompozice.
v 2.0 budes muset udelat:
$kolekce = iterator_to_array($this->myRepository->getAll());