Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]zend framework - odczytanie zapytania
Forum PHP.pl > Forum > Przedszkole
kielich
Mam problem w odczytaniu wszystkich rekordów z bazy w której znajduje się 10 pól. Pewnie źle coś robię ale uczę się przez praktykę biggrin.gif

  1. <?php foreach($this->Ocena as $a); ?>
  2. <?php echo $a->tresc; ?>
  3. <? endforeach; ?>


  1. <?php
  2. class Application_Model_DbTable_Ocena extends Zend_Db_Table_Abstract
  3. {
  4. protected $_name = 'ocena';
  5.  
  6. public function getLosowaOcena($id) {
  7.  
  8. $sql = $this->select()->limit (5);
  9. return $this->fetchAll($sql);
  10.  
  11.  
  12.  
  13. }
  14.  
  15.  
  16. }


Wyświetla mi tylko jeden rekord a powinno być 5 jak w limicie
dlaczego questionmark.gif?
jasin
Nie wiem czy pomoże, ale gdybyś dał
  1. limit(5,0)
?
kielich
Powiem ci że to nie ma znaczenia ponieważ robiąc tak

  1. $sql = $this->select();
  2. return $this->fetchAll($sql);
  3. ...

nic to nie daje niby jest select * .... a wyswietla tylko jeden rekord
jasin
A tak?
  1. $sql = $this->select()->limit(5);
  2. return $this->fetchAll($sql)->toArray();
kielich
wywala bład

Kod
Notice: Trying to get property of non-object in
jasin
Ale wywala notice na
  1. $this->fetchAll($sql)->toArray();
czy czasem na
  1. <?php echo $a->tresc; ?>

Jak daję u siebie
  1. var_export($this->fetchAll($sql)->toArray());exit;
to jest ok. Może powinno być
  1. <?php echo $a['tresc']; ?>
kielich
kiedy daje tak jak teraz napisałeś to wyswietla ale tez jeden rekord

zrobiłem jeszcze dla Pewności printa dla $a w foreach i dostaje 1 rekord

  1. Array ( [id] => 5 [tresc] => sdcisucyb [kiedy] => 2010-02-16 )


kontroler jeszcze do tego wyglada tak dlatego nie wiem dlaczego to nie wyswietla * rekordów

  1. $Ocena = new Application_Model_DbTable_Ocena();
  2. $this->view->Ocena = $Ocena->getLosowaOcena();
l3l0
Masz średnik po foreach
  1. <?php foreach($this->Ocena as $a); ?>

zamień to na
  1. <?php foreach($this->Ocena as $a): ?>
kielich
dalej jeden rekord ;/ strasznie to dziwne

Czy to przypadek nie do rozwikłania questionmark.gif juz od 3 H się głowie a to pewnie jakiś banał ...

Czy ma ktoś jeszcze jakiś pomysł questionmark.gif ?

I co nikt nie jest w stenie mi pomóc questionmark.gif !?!? sad.gif

.

hmmm wiele przesiedziałem przy takie drobnostce ....
może jest ktoś kto będzie w stanie mi pomóc ?!?!??!

?!?!
melkorm
Cytat
  1. public function getLosowaOcena($id) {
  2.  
  3. $sql = $this->select()->limit (5);
  4. return $this->fetchAll($sql);
  5.  
  6.  
  7.  
  8. }

zamień na:

  1. public function getLosowaOcena($id) {
  2.  
  3. $sql = $this->select()->limit (5);
  4. var_dump($sql->__toString());
  5. return $this->fetchAll($sql);
  6.  
  7.  
  8.  
  9. }


i pokaż jakie zapytanie tworzy to raz. I wklej na nowo co potworzyłeś winksmiley.jpg
mortus
Witam.
To spróbuj w kontrolerze zrobić tak:
  1. $Ocena = new Application_Model_DbTable_Ocena();
  2. $this->view->Ocena = $Ocena->fetchAll();

i w pliku widoku tak:
  1. <?php
  2. foreach($this->Ocena as $a) :
  3. echo $a->tresc . '<br />';
  4. endforeach;
  5. ?>

Jeżeli nadal będzie tylko jeden rekord, to sprawdź ile rekordów jest w tabeli w bazie danych.
Uwaga: Znacznik <br /> stosujemy tutaj tylko dla lepszego wyglądu!
kielich
Kontroler
  1. $Ocena = new Application_Model_DbTable_Ocena();
  2. $this->view->Ocena = $Ocena->getLosowaOcena();


widok
  1. <?php foreach($this->Ocena as $a) ?>
  2. <?php echo $a->tresc; ?>
  3. <? endforeach; ?>


model
  1. <?php
  2. class Application_Model_DbTable_Ocena extends Zend_Db_Table_Abstract
  3. {
  4. protected $_name = 'ocena';
  5.  
  6. public function getLosowaOcena() {
  7.  
  8.  
  9. $sql = $this->select();
  10.  
  11. return $this->fetchAll($sql);
  12.  
  13.  
  14.  
  15. }
  16.  
  17.  
  18. }


powyższe przykłady sprawdzałem ciągle jeden rekord wypisuje w bazie jest 11 rekordów
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.