![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 20.12.2007 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
A więć, mam sobie taką prostą funkcję
tylko teraz, zalozmy ze w skrypcie chcialbym wywolac w petli inne zapytanie z petla czyli
To 2 wyniki z SQLa myli i sie gubi. Chcialem dodac identyfikacje do zapytania czyli
i przy wywolywaniu odpowiednio to nazywac sobie np
Ale dostaje blad Cytat Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /users/modasu/htdocs/_sites/pg3/class/class.sites.php on line 12 Czy mój pomysł jest w ogóle dobry i ma sens ? Co jest nie tak ? Z góry dzieki Pozdrawiam Ten post edytował Wieloryb 22.04.2010, 20:58:55 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 5 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
parameter id jest nie potrzebny, problem masz w sekwencji:
zmienną $row z pierwszego zapytania nadpisujesz zmienną $row z drugiego zapytania, poza tym nadpisujesz sobie zmienną $s->res w podpętli, na mój gust powinno to wyglądać tak:
-------------------- zmoderowano - rozmiar
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Drugi parametr funkcji rzeczywiście jest niepotrzebny. Natomiast nadpisywanie zmiennej $row nie ma tutaj nic do rzeczy, choć to zależy od tego, czy w drugiej pętli while (lub w ogóle po nadpisaniu zmiennej $row) wykorzystujesz (chcesz wykorzystać) dane pobrane za pomocą pierwszego zapytania. Niewątpliwie problemem jest nadpisywanie obiektu $s, gdyż obiekt ten przechowuje odpowiedni zasób zwrócony przez zapytanie SQL. Kiedy pierwsza pętla while wykona już jeden przebieg, to próbuje uzyskać dostęp do zmiennej $res obiektu $s, aby pobrać następny rekord. Jednak obiekt ten został nadpisany i nie zawiera już wyników pierwszego zapytania, a zawiera wyniki zapytania drugiego (tutaj się gubi, ale nie druga pętla, tylko pierwsza). Wyjaśnię dobitniej w komentarzach do kodu:
Jeszcze słowo odnośnie rozwiązania z identyfikatorem wyniku. W praktyce nie stosuje się takiego czegoś. Zazwyczaj jeden obiekt przechowuje wyniki jednego zapytania, a inny obiekt wyniki innego zapytania. Jednak nie jest to niewykonalne. Kwestią do rozstrzygnięcia jest odpowiednia budowa klasy. @mdco: piszesz o nadpisywaniu i sam nadpisujesz
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:04 |