Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zagnieżdżanie instrukcji WHILE + odczyt z bazy danych
TheaSiX
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
TheaSiX
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 10
Dołączył: 3.09.2006
Skąd: Bishop Auckland

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
Void
post
Post #4





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 01:47