Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Pętla w pętli
Forum PHP.pl > Forum > Przedszkole
Piotrwusek
Witam


Czy jest możliwa pętla WHILE w pętli WHILE?



Pozdrawiam



Piotrwusek
phpion
Witam

Tak

Pozdrawiam

pion
Piotrwusek
A IF może być?

Bo mam tak i wyskakuje mi błąd

  1. <?php
  2. $st = mysql_query("SELECT * FROM `".NAMEBASE."kategorie-menu`");
  3. while($strg = mysql_fetch_assoc($st)){
  4.  
  5. $sl = mysql_query("SELECT * FROM `".NAMEBASE."menu`");
  6. while($stg = mysql_fetch_assoc($sl)){
  7.  
  8. if ( $strg[nazwa] == $stg[kategoria] )
  9. {
  10.  print($stg[nazwa])
  11.  
  12. }
  13. }}
  14. ?>
b_chmura
nie masz średnika przy print, naucz sie czytać błędy
Piotrwusek
o o o DZIĘKI

A jest coś takiego jak numer powtórzenia pętli?
webdice
Przed pętlą daj:

  1. <?php
  2. $i = 0;
  3. ?>


a w pętli:

  1. <?php
  2. $i++;
  3. ?>


Poczytaj o inkrementacji.
Piotrwusek
Dzięki, tak tylko inaczej sformułowane miałem, a byłem ciekawy czy można to zastąpić?

smile.gif
b_chmura
to nie jest kurs on-line, przeczytaj sobie jakiś kurs
Piotrwusek
Dlaczego mi to nie idzie


Mam pętle w pętli i gdy chę żeby po raz drugi pętla druga się wykonała to nie idzie.

  1. <?php
  2. $i = 0;
  3.  
  4.  $st = mysql_query("SELECT * FROM `".NAMEBASE."kategorie-menu`");
  5. while($kat = mysql_fetch_assoc($st)){
  6. $i++;
  7.  
  8. $sl = mysql_query("SELECT * FROM `".NAMEBASE."menu` WHERE id='$i'");
  9. while($stg = mysql_fetch_assoc($sl)){
  10. $dd = $stg[kategoria];}
  11.  
  12. }
  13. ?>



wykonuje mi tylko raz drugą pętle


Cytat(b_chmura @ 22.12.2007, 17:38:34 ) *
to nie jest kurs on-line, przeczytaj sobie jakiś kurs

smile.gif
marcio
Ja tam nie wiem ale skoro 2 petle while to moze 2 wartosci
  1. <?php
  2. $i = 0;
  3.  
  4.  $st = mysql_query("SELECT * FROM `".NAMEBASE."kategorie-menu`");
  5. while($kat = mysql_fetch_assoc($st)){
  6. $i++;
  7.  
  8. $a = 0;
  9.  
  10. $sl = mysql_query("SELECT * FROM `".NAMEBASE."menu` WHERE id='$i'");
  11. while($stg = mysql_fetch_assoc($sl)){
  12.  $a++; 
  13.  $dd = $stg[kategoria];}
  14.  
  15. }
  16. ?>

albo
  1. <?php
  2. $i = 0;
  3.  
  4.  $st = mysql_query("SELECT * FROM `".NAMEBASE."kategorie-menu`");
  5. while($kat = mysql_fetch_assoc($st)){
  6.  
  7.  
  8. $sl = mysql_query("SELECT * FROM `".NAMEBASE."menu` WHERE id='$i'");
  9. while($stg = mysql_fetch_assoc($sl)){
  10. $i++;
  11. $dd = $stg[kategoria];}
  12.  
  13. }
  14. ?>

ale nie wiem moze o cos innego chodzi biggrin.gif
webdice
Najprawdopodobniej masz złe drugie zapytanie, w id ma być chyba $kat['id'] a nie $i.
b_chmura
$i++; umieść zaraz przed końcem ( } ) pierwszej pętli
poza tym skoro wyświetlasz wszystkie rekordy to po co rozróżniać je po ID?

  1. <?php
  2. $i = 0;
  3.  
  4. $st = mysql_query("SELECT * FROM `".NAMEBASE."kategorie-menu`");
  5. while($kat = mysql_fetch_assoc($st))
  6. {
  7. echo 'costam ['.$i.']<hr />
  8. ';
  9. $sl = mysql_query("SELECT * FROM `".NAMEBASE."menu`");
  10.  
  11. while($stg = mysql_fetch_assoc($sl))
  12. {
  13. echo $stg['kategoria'];
  14. }
  15. $i++;
  16. }
  17. ?>
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.