Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z dwoma pętlami
Forum PHP.pl > Forum > Przedszkole
arzach
Witam mam taki kod

  1. <?php
  2. $i = 0;
  3. while($r = mysql_fetch_assoc($wynik))    
  4. {
  5. $mina = explode(",", $r['miniaturki']);
  6. array_pop($mina);  
  7.  
  8. $obrazki = explode(",", $r['obrazki']);  
  9. array_pop($obrazki);
  10.  
  11. $c = array_combine($mina, $obrazki);  
  12.  
  13. echo "<a href='zobacz.php?tel_id=".$r['id']."'>".$r['nazwa']."</a>";
  14.  
  15. while (list ($klucz, $wartosc) = each ($c)) {
  16.  
  17. <a href='".$wartosc."'>
  18. <img src='".$klucz."'></a>";  
  19. $i++;
  20. if ($i == 3) break;
  21.  
  22. }
  23. }
  24. ?>


I mam problem ponieważ pętla która wyświetla zawartości tablicy $c wyświetla 3 wartości ale tylko przy 1 razie przy każdym następnym powtórzeniu przez pętle
  1. <?php
  2. while($r = mysql_fetch_assoc($wynik))
  3. ?>
wyświetla już wszystkie wartości z tablicy $c zamiast trzech wartosci.

Wie ktoś czemu tak się dzieje ?

.
nospor
ten warunek: if ($i == 3) break;
jest spelniony tylko raz. przeciez przy kolejknym obrocie petli $i jest juz wieksze od 3. przed wejsciem w drugą petle musisz $i wyzerowac
arzach
A jak moge zmienną $i wyzerować ?
nospor
no a weź sie zastanow przez chwile... PRzeciez juz to w tym kodzie robiles, tylko w zlym miejscu:
  1. <?php
  2. $i = 0;
  3. ?>
arzach
No tak ale jak zrobie tak
  1. <?php
  2. if ($i == 3) { break; $i = 0; }
  3. ?>


To nic nie daje i dalej to samo
nospor
No ale napisalem przeciez
Cytat
no a weź sie zastanow przez chwile...

miales dac $i=0 przed drugą petlą a nie po slowie break;, ktore ma to do siebie ze kod za nim sie nie wykonuje

Druga petla rozpoczyna sie slowem while i to przed nim masz tę zmienną wyzerować. Od biedy mozesz dac to przed break a nie po
arzach
Dzięki działa
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.