Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zagnieżdżanie instrukcji WHILE + odczyt z bazy danych
Forum PHP.pl > Forum > PHP > Object-oriented programming
TheaSiX
Już od jakiegoś czasu do każdego swojego projektu używam mini-klasy do łączenia się z bazą danych czy obsługą zapytań, których używam wszędzie. Mam jednak kłopot jeśli chodzi zagnieżdżanie instrukcji while.. Oto przykład:

  1. $db -> new databaseHandler();
  2. $db -> executeQuery("SELECT * FROM tabela");
  3. while($row = mysql_fetch_array($db->result)) {
  4.  
  5. //jakieś instrukcje
  6.  
  7. $db->executeQuery("SELECT * FROM tabela2");
  8. while($row = mysql_fetch_array($db->result)) {
  9.  
  10. //jakieś instrukcje
  11.  
  12. }
  13. }


Wszystko działa jeśli zrobię wewnątrz pierwszego WHILE drugi egzemplarz obiektu, ale chciałbym wiedzieć czy można otrzymać taki sam efekt używając jednego obiektu? Normalnie wypisuje tylko jeden wiersz z pierwszego zapytania... Wszelkie wskazówki mile widziane.
nospor
zapewne $db -> executeQuery nadpisuje ci $db->result
No i jak dasz w petli $db -> executeQuery to nadpisze ci $db->result z przed petli. Proste.

Rozwiązanie? Pomysl troche smile.gif
TheaSiX
domyślałem się, że to przez nadpisywanie, ale jak wspomniałem, jedyne logiczne rozwiązanie jakie udało mi się wymyśleć to robienie drugiego egzemplarza obiektu.

hmm teoretycznie muszę "wyzerować" $db->result po drugiej pętli tak?
Void
Cytat(TheaSiX @ 22.09.2009, 15:54:13 ) *
domyślałem się, że to przez nadpisywanie, ale jak wspomniałem, jedyne logiczne rozwiązanie jakie udało mi się wymyśleć to robienie drugiego egzemplarza obiektu.

A może by tak przypisać $db->result do zmiennej lokalnej, takiej której nie nadpiszesz, hm? smile.gif
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.