Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pętla while wykonuje się tylko raz
Forum PHP.pl > Forum > PHP
majestiq
  1. <?php
  2. // 1 PRZEBIEG, WCZYTANIE KATEGORII    
  3.  
  4.  
  5.    $wczytaj_kategorie = "SELECT * FROM kategorie WHERE cat_parent>0";
  6.    $answ = mysql_query($wczytaj_kategorie, $conn);
  7.  
  8.    
  9.            while($rek = mysql_fetch_array($answ)) {
  10.                  $nazwak = $rek['cat_name'];
  11.                  $idkat = $rek['cat_id'];
  12.  
  13.                    echo $nazwak;
  14.  
  15. // 2 PRZEBIEG, WCZYTANIE PLIKOW Z DANEJ KATEGORII    
  16.                $wczytaj_pliki = "SELECT * FROM pliki WHERE file_cat=$idkat";
  17.                            $answ = mysql_query($wczytaj_pliki, $conn);
  18.  
  19.    
  20.                      while($rek = mysql_fetch_array($answ)) {
  21.                  $nazwapliku = $rek['file_name'];
  22.  
  23.                    echo $nazwapliku;
  24.                    
  25.                
  26.  
  27.                    
  28.            }
  29.  
  30.                    
  31.            }
  32. ?>


Pętla, któa jest zagnieżdżona wykonuje się odpowiednia ilość razy (tyle ile plikow w danej kategorii) ale potem nic się już nie dzieje.
Tym sposobem listuje mi tylko pliki dla 1 kategorii, a pozniej glowna petla sie nie powtarza (nastepna kategoria).
Czemu ?
piotrooo89
ja zaczął bym od zmiany zmiennych.
tej:
  1. <?php
  2. $answ = mysql_query($wczytaj_kategorie, $conn);
  3. ?>

i tej:
  1. <?php
  2. $answ = mysql_query($wczytaj_pliki, $conn);
  3. ?>


daj jakieś unikalne nazwy.
l0ud
W pętli nadpisujesz zmienne $rek i $answ, przez co Ci się to sypie. Nie powtarzaj nazw zmiennych.
kefirek
Zobacz tak powinno działać
  1. <?php
  2. $result = mysql_query("SELECT * FROM kategorie WHERE cat_parent>0");
  3. while ($rek = mysql_fetch_assoc($result)) {
  4.  
  5. echo "".$rek['cat_name']." ID ".$rek['cat_id']."<br>";
  6.  
  7. $result2 = mysql_query("SELECT * FROM pliki WHERE file_cat='".$rek['cat_id']."'");
  8. while ($rek2 = mysql_fetch_assoc($result2)) {
  9.  
  10. echo "".$rek2['file_name']."<br>";
  11.  
  12. }  
  13. }
  14. ?>
majestiq
No tak smile.gif
Zwykle uzywalem tych samych nazw dla tego typu zmiennych, ale tam juz nie bylo zagniezdzenia i nic sie nie powtarzalo.
Dzięki!
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.