Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pętla while wykonuje się tylko raz
majestiq
post
Post #1





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


  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 ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
piotrooo89
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




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.
Go to the top of the page
+Quote Post
l0ud
post
Post #3





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


W pętli nadpisujesz zmienne $rek i $answ, przez co Ci się to sypie. Nie powtarzaj nazw zmiennych.
Go to the top of the page
+Quote Post
kefirek
post
Post #4





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


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. ?>


Ten post edytował kefirek 28.12.2008, 14:49:21
Go to the top of the page
+Quote Post
majestiq
post
Post #5





Grupa: Zarejestrowani
Postów: 235
Pomógł: 0
Dołączył: 26.10.2006

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


No tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Zwykle uzywalem tych samych nazw dla tego typu zmiennych, ale tam juz nie bylo zagniezdzenia i nic sie nie powtarzalo.
Dzięki!
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 - 20:59