Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] OOP Problem z pętla
Forum PHP.pl > Forum > Przedszkole
miras
Witam, dodałem do pętli jeszcze jeden warunek, żeby ją "zabić" w momencie, w którym to będzie potrzebne jednak mam błąd:

  1. : Call to a member function fetch() on a non-object in




i kod:


  1. $this->res=1;
  2. $this->check=1;
  3. while($row = $this->result->fetch() && $this->check==1) {
  4.  
  5. if($row['result']==1 && $this->res==1) {
  6. $this->res = $this->$row['result'];
  7. $this->result=1;
  8. } elseif($row['result']==0) {
  9. $this->result=0;
  10. $this->check=0;
  11. } else {
  12. $this->result=3;
  13. $this->check=0;
  14. }
  15.  
  16. }


dodam, że jak usunę ten dodatkowy warunek pętli to jest ok..
Turson
Po co to w ogóle tak logicznie?

  1. while($row = $this->result->fetch()) {
  2.  
  3. if($row['result']==1) {
  4. $this->res = $this->$row['result'];
  5. }
  6. }

Wychodzi na to samo
miras
może i wychodzi na to samo, ale pętla będzie mi się kreciła dalej.. chciałbym to jakoś zoptymalizowac..
Crozin
Cytat
Call to a member function fetch() on a non-object in
Próbujesz wywołać metodę fetch() na czymś co w ogóle nie jest obiektem. Bardzo jasno napisane co jest przyczyną.
miras
ehh, zapytam inaczej.. (pomijajac fakt, ze gdybym wiedzial jak rozwiazac blad czytajac komunikat bledu to bym go rozwiazal)


w jaki sposób można "zastopować" tą pętle?

  1. while($row = $this->result->fetch() ) {
  2.  
  3. if($row['result']==1 && $this->res==1) {
  4. $this->res = $this->$row['result'];
  5. $this->result=1;
  6. } elseif($row['result']==0) {
  7. $this->result=0;
  8. $this->check=0;
  9. } else {
  10. $this->result=3;
  11. $this->check=0;
  12. }
  13.  
  14. }
irmidjusz
zastopować pętlę można instrukcją break
Crozin
1. Problem nie ma najmniejszego związku z samą pętlą.
2. $this->result nie jest obiektem, więc nie możesz na nim wywołać metody fetch() o czym informuje Cię komunikat błędu. Innymi słowy problem jest w miejscu przypisania wartości do $this->result. Prawdopodobnie jakaś funkcja zwraca false/null zamiast obiektu.
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.