Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zagnieżdżone pętle for
Niedowiarek
post
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
 
Start new topic
Odpowiedzi (1 - 6)
blooregard
post
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ąć.
Go to the top of the page
+Quote Post
Niedowiarek
post
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
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
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 (IMG:style_emoticons/default/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
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
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ł" (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 12:00