Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: [php] Zapêtlone petle
Forum PHP.pl > Forum > Przedszkole
zicher
Witam ponownie

Mam kolejny problem z petlami while, ktorego kompletnie nie rozumiem. Chodzi o to, ze mam w bazie danych trzy tabele darkzlehkosmos, darkzlehkosmostypy, darkzlehkosmosjednostki. Sa polaczone ze soba relacyjnie (wiele-do-wielu).

A zatem tabela darkzlehkosmos i darkzlehkosmostypy polaczone sa tabela darkzlehkosmos_darkzlehkosmostypy (darkzlehkosmos_id i darkzlehkosmostypy_id).
Tabele darkzlehkosmostypy i darkzlehkosmosjednostki rowniez polaczone sa ze soba tabela laczaca o nazwie darkzlehkosmostypy_darkzlehkosmosjednostki (darkzlehkosmos_id, darkzlehkosmostypy_id, darkzlehkosmosjednostki_id)

Co chce osiagnac. Otoz chce wygenerowac liste darkzlehkosmos. Pod kazdym punktem tej listy chce wygenerowac odpowiednia liste przyporzadkowanych darkzlehkosmostypy, by nastepnie wygenerowac pod kazdym elementem darkzlehkosmostypy odpowiadajace im listy darkzlehkosmosjednostki.

Na tej oto zasadzie:
1. darkzlehkosmos
A). darkzlehkosmostypy
I). darkzlehkosmosjednostki
II). darkzlehkosmosjednostki
cool.gif. darkzlehkosmostypy
2. darkzlehkosmos
A). darkzlehkosmostypy

...etc.

Musialem cos nie zalapac z petli. Udaje mi sie zrobic dobrze tylko jedna petle. Druga nie dziala.

Dam przyklad. Lista darkzlehkosmos sie generuje. Pod kazdym elementem listy generuje sie odpowiednia lista darkzlehkosmostypy. Teraz pod kazdym elementem darkzlehkosmostypy powinna sie generowac odpowiednia lista darkzlehkosmosjednostki. Problem w tym, ze w moim skrypcie tak sie nie dzieje.

Oto moj skrypt:
  1. <?php
  2. $q4 = "SELECT * FROM darkzlehkosmos ORDER BY e_order";
  3. $d4 = mysql_query($q4) or die(mysql_error());
  4.  while($r4 = mysql_fetch_array($d4))
  5.  {
  6. echo '<font class="nbb" size="10">'.$r4['darkzlehkosmosnazwa'].'</font><br>'; 
  7.  
  8. $q3 = "SELECT * FROM darkzlehkosmos, darkzlehkosmostypy, darkzlehkosmos_darkzlehko
    smostypy WHERE darkzlehkosmos.darkzlehkosmos_id=darkzlehkosmos_darkzlehkosmostypy
    .darkzlehkosmos_id AND darkzlehkosmostypy.darkzlehkosmostypy_id=darkzlehkosmos_da
    rkzlehkosmostypy.darkzlehkosmostypy_id AND darkzlehkosmos.darkzlehkosmos_id='"
    .$r4[0]."'";
  9. $d3 = mysql_query($q3) or die(mysql_error());
  10.  while($r3 = mysql_fetch_array($d3))
  11.  {
  12.  echo '<font class="greenb" size="5"> '.$r3['darkzlehkosmostypynazwa'].'</font><br>';
  13.  
  14. $q2 = "SELECT * FROM darkzlehkosmos, darkzlehkosmostypy, darkzlehkosmos_darkzlehko
    smostypy, darkzlehkosmosjednostki, darkzlehkosmosjednostki_darkzlehkosmostypy WHE
    RE darkzlehkosmos.darkzlehkosmos_id=darkzlehkosmos_darkzlehkosmostypy.darkzlehkos
    mos_id AND darkzlehkosmostypy.darkzlehkosmostypy_id=darkzlehkosmos_darkzlehkosmos
    typy.darkzlehkosmostypy_id AND 
  15. darkzlehkosmos.darkzlehkosmos_id=darkzlehkosmosjednostki_darkzlehkosmostypy.dark
    zlehkosmos_id AND
  16. darkzlehkosmostypy.darkzlehkosmostypy_id=darkzlehkosmosjednostki_darkzlehkosmost
    ypy.darkzlehkosmostypy_id AND
  17. darkzlehkosmosjednostki.darkzlehkosmosjednostki_id=darkzlehkosmosjednostki_darkz
    lehkosmostypy.darkzlehkosmosjednostki_id AND
  18. darkzlehkosmos.darkzlehkosmos_id='".$r4[0]."' AND 
  19. darkzlehkosmostypy.darkzlehkosmostypy_id='".$r3[0]."'
  20. ";
  21.  
  22. $d2 = mysql_query($q2) or die(mysql_error());
  23. while($r2 = mysql_fetch_array($d2))
  24.  {
  25.  echo '<font class="pal" size="5"> <img src="'.$r2['grafikam'].'" border="0"> '.$r2['darkzlehkosmosjednostkinazwa'].'</font><br>';
  26.  
  27. }
  28.  }
  29.  }
  30. ?>



Wiem, ze problem tkwi w zapytaniu q2. Wiem tez ze bledna jest ta czesc:

  1. <?php
  2. darkzlehkosmostypy.darkzlehkosmostypy_id='".$r3[0]."
  3. ?>



Kiedy jej nie ma darkzlehkosmosjednostki generuja sie odpowiednio pod darkzlehkosmos, ale juz nie dziela sie na typy.

Bardzo prosze o pomoc. Najbardziej zalezy mi na informacji jak zmusic darkzlehkosmosjednostki by sie grupowaly odpowiednio w darkzlehkosmostypy (w bazie danych sa polaczone relacyjnie tj. tabela darkzlehkosmostypy_darkzlehkosmosjednostki zawieraja klucze obce darkzlehkosmos_id, darkzlehkosmostypy_id i darkzlehkosmosjednostki_id)

Ewentualnie jezeli to nie sprawi probemu prosze o wyjasnienie dlaczego petle nie trzymaja porzadku

Z gory dziekuje
z powazaniem
zicher
tort
Nie ¿ebym siê czepia³, ale proponowa³bym u¿ywaæ aliasów dla nazw tabel. Bez nich zapytanie wygl±d± trochê hardkorowo. No i pisania by³oby mniej.
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.