Pętla while w pętli while. Czy to możliwe?

0

Witam. Pytanko odnośnie inżyierii języka php. Które rodzaje pętli są najszybsze. Czy są jakieś ogólno przyjęte obostrzenia w zgnieżdżaniu jedych pętli w drugie. No mam dosyć złożoną pętlę WHILE i muszę tam wstawić gdzieś po drodze jeszcze jedną. Jak wstawiam WHILE to... coś mi "nie styka". Czy więc mogą wchodzić w rachubę jakieś strukturalne ograniczenia języka PHP. Dziękuję z odowiedź. Pozdrawiam serdecznie.

Kuba

5

Jak się uprzesz to możesz i pierdyliard pętli mieć w pętli. Pokaż kod, bo zgadywać nie będziemy, czemu "nie styka".

I co znaczy "nie styka"?

0
serek napisał(a):

Jak się uprzesz to możesz i pierdyliard pętli mieć w pętli. Pokaż kod, bo zgadywać nie będziemy, czemu "nie styka".

I co znaczy "nie styka"?

Zagadka rozwiązana. Chodziło o powtażalność zmiennej $row w podwójnej pętli while. Proste błędy są najlepsze. Hehe. Dziękuję za pomoc i słowa otuchy.

1
Jakub Prażmowski napisał(a):

Myślałem chwilę nad tym. Biorąc pod uwagę moc obliczeniową dzisiejszych procesorów które obliczają np. grafikę w skomplikowanych grach, dla procesora naprawdę nie jest istotne czy łączysz się z bazą danych z 4 poziomu pętli, czy robisz tą samą operację w pętli obok na pierwszym poziomie, a potem tylko podajesz tą informację do innej pętli. Poza tym naprawdę nie mogłem tego zrobić nigdzie indziej tylko na 4 poziomie... To tak jak w incepcji. Chodzi o to żeby "zaszczepić idee". Procesorowi i tak wszystko jedno. Wszystko obliczy. "Nie ma co żałować procesora!" -

Jest to istotne, chociażby dla dobrej architektury, optymalizacji i czystości kodu. I ma to potem znaczenie, gdy liczba userów korzystających ze strony jest duża. Bo nagle okazuje się, że serwer nie wyrabia, albo koszty wzrosły mocno.

Łączyć z bazą powinieneś się tylko raz, przed wywołaniem pętli. W pętli co najwyżej powinieneś wysyłać zapytania do bazy.

0

Jest to istotne, chociażby dla dobrej architektury, optymalizacji i czystości kodu. I ma to potem znaczenie, gdy liczba userów korzystających ze strony jest duża. Bo nagle okazuje się, że serwer nie wyrabia, albo koszty wzrosły mocno.

Łączyć z bazą powinieneś się tylko raz, przed wywołaniem pętli. W pętli co najwyżej powinieneś wysyłać zapytania do bazy.

Dzięki za odpowiedź. No więc. Wiadomo, że nie nawiązuję połączenia z bazą danych więcej niż raz w danym skrypcie. No cóż. W każdym kolejnym już muszę i tak. To znaczy co? Może cały program powinniśmy pisać tylko w jednym pliku? Bo wtedy łączylibyśmy się z bazą danych tylko raz.

Mój program polega na tym, iż ściągam z serwera wpisy blogowe. Następnie do każdego wpisu ściągam komentarze, jeśli są... to jest drugie zapytanie do bazy danych w głównej pętli. A jak już mam te komentarze, to jeszcze muszę sprawdzić, czy dany komentarz nie jest przypadkiem danego usera, żeby mógł sobie go edytować. Usiłuję sobie wyobrazić cóż jeszcze mógłbym sprawdzić dalej. Np. gdyby okazało się że dany user kupował ostatnio jakieś produkty, to może chciałbym móc wyświetlić jakie, dokładnie pod tym miejscem, gdzie będzie edytował swój wpis. Itd. Itd. Itd.

Czasami nie da się logiki rozbić na małe kawałki. Są strony proste i są strony bardziej skomplikowane. Jasne jest, że strony bardziej skomplikowane będą "zabierały więcej serwera". Koniec i kropka. Sprawa rozwiązana. Myślę, że Pinterest albo Facebook powinien się martwić o optymaliazję swojego kodu, bo korzystają z niego miliony ludzi na całym świecie, ale na mojej małej stronie na którą nikt nie wchodzi... proszę Cię.

Potrzeba optymalizacji "bzdetów" wzięła się z tego, że zazwyczaj programować uczymy się w szkołach lub na jakiś kursach, choćby z książki. I tam wszystko musi być ładnie poukładane na potrzeby prowadzenia kursu. A w życiu prywatnym? W moich własnych ćmojach bojach programistycznych? ...proszę Cię. Jeśli tylko jestem w stanie połapać się w swoim bałaganie. To serwer to i tak łyknie.

Co innego to jest pakowanie na bloga wielu 20MB obrazków. Ale 0010101010010101110101010010101 serwera w kwesti żonglerki ABC DEF to są żarty. Jeżeli działą. To wystarczy.

Kod powinien być czytelny dla swojego twórcy, bo być może będzie dobierał się do niego za jakiś czas (refaktoryzacja - tak to się nazywa?) No i jeśli prgramujemy w grupie to jakieś konwencji trzeba się trzymać. Ale to w fabryce oprogramowania.

Dziękuję. Pozdrawiam.
Kuba

1

Nie musisz pisać wszystkiego w jednym pliku.

Czyli rozumiem, że masz najpierw zapytanie, którym pobierasz wpisy. A potem robisz pętlę po wpisach i dla każdego wpisu wysyłasz zapytanie, aby pobrać komentarze?

Prawdopodobnie da się zrezygnować z pętli, a np. zrobić część w PHP. Lepsze niż to wysyłanie setek dodatkowych zapytań.

  1. Pobierasz wpisy
  2. Wyciągasz ich ID
  3. Robisz JEDNO zapytanie pobierające komentarze wg ID wpisów, następnie grupujesz po ID wpisu

1 użytkowników online, w tym zalogowanych: 0, gości: 1