Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zagnieżdżone pętle for
Niedowiarek
post 28.04.2011, 22:21:01
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


Otóż mam taki skrawek kodu:

  1. <?php
  2. $liczba = count($nazwy);
  3. $liczba1 = count($produkty);
  4.  
  5. for($i=0;$i<$liczba;$i++)
  6. {
  7. for($j=0;$j<$liczba1;$j++)
  8. {
  9. echo "<tr><td>".$nazwy[$i]."</td> <td>".$produkty[$j]."</td></tr>";
  10. }
  11. }
  12. ?>


Lecz kiedy go "odpalam" pętle for tworzą tabelę z dwoma kolumnami, lecz np. siodelko i jego cena powtarza sie 12 razy ;/

SS: http://img856.imageshack.us/i/tabelal.png/
Go to the top of the page
+Quote Post
blooregard
post 28.04.2011, 22:28:06
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Zawartość nazwa[$i] nie zmienia się w iteracjach wewnętrznego for() dopóki $j jest mniejszy od $liczba1, więc jeśli przykładowo $liczba1 wynosi 20, to wewnętrzna pętla for() wykona się 20 razy z tą samą nazwą.

Może napisz, co chcesz osiągnąć.


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
Niedowiarek
post 28.04.2011, 22:32:55
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


Chcę utworzyć tabelę, w której będą dwie kolumny, po lewej nazwa produktu, a po prawej cena, tak samo jak na SS, tylko żeby nie wyświetlało się jedno 12 razy
Go to the top of the page
+Quote Post
virusT
post 28.04.2011, 22:34:35
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 1
Dołączył: 10.05.2007
Skąd: Częstochowa / Kraków

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


Twoje rozwiązanie jest niepotrzebnie skomplikowane. Proponuję inaczej to rozwiązać, mianowicie tablica wielowymiarowa. Ja bym to widział tak:

  1. <?PHP
  2.  
  3. // najpierw przepiszemy to tablicy wartości które już masz w dwu zmiennych $nazwy i $produkty
  4. for($i=0; $i<count($nazwy); $i++) {
  5. $tablica['nazwy'][$i] = $nazwy[$i];
  6. $tablica['produkty'][$i] = $produkty[$i];
  7. }
  8.  
  9. // i teraz to wyświetlimy
  10.  
  11. for($i=0; $i<count($tablica['nazwy']); $i++) {
  12. echo "<tr><td>" . $tablica['nazwy'][$i] . "</td><td>" . $tablica['produkty'][$i] . "</td></tr>";
  13. }
  14.  
  15. ?>


Mam nadzieję, że pomogłem.

Ten post edytował virusT 28.04.2011, 22:38:46
Go to the top of the page
+Quote Post
Niedowiarek
post 28.04.2011, 22:44:41
Post #5





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


Przykro mi to mówić ale niezbyt tongue.gif

To znaczy, nie za bardzo rozumiem twój kod, ale to nic, potem go rozkminie, lecz po wpisaniu twojego kodu, tabela ma tylko dwie komórki, a mianowicie po lewej "S" a po prawej "3". ;/
Go to the top of the page
+Quote Post
virusT
post 28.04.2011, 22:46:44
Post #6





Grupa: Zarejestrowani
Postów: 16
Pomógł: 1
Dołączył: 10.05.2007
Skąd: Częstochowa / Kraków

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


sorka już go poprawiłem, teraz spróbuj go skopiować, wcześniej zawierał mały błąd, bo pisałem go na sucho.
Go to the top of the page
+Quote Post
Niedowiarek
post 28.04.2011, 22:49:06
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 0
Dołączył: 28.04.2011

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


o, Dzięki działa, masz "pomógł" tongue.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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 07:51