Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: while x2 i wywala błąd
Forum PHP.pl > Forum > Przedszkole
zman85
Witam,
jestem początkujący więc proszę się nie smiać jeśli sprawa będzie prosta,
jestem w trakcie tworzenia menu wykorzystując sql'a.
W bazie mam tak wszystko uformowane że:

kategoria podkategoria
1 0
2 0
3 2
4 3
5 4

wtedy mamy kategorie 1 (główną), 2 (główna) i do dwójki podkategorie 3,4,5.
0 oznacza brak podkategorii dla jakiejś tam kategorii.

Ze strony bazy wszystko jest okay, tylko po includowaniu takiego kodu
  1. <?php
  2. $sql_select = mysql_query( "SELECT * FROM ".$prefix."kategorie where podkategorie = 0");
  3.  
  4. while ($row = mysql_fetch_array($sql_select))
  5.       {
  6.           $id = $row["id"];
  7.           $nazwa = $row["nazwa"];
  8.         ?>
  9.  
  10.    <a href="?kategoria_id=<? echo $id;?>"><? echo $nazwa;?></a>
  11.  
  12.  
  13. <?
  14. $sql_select1 = mysql_query( "SELECT * FROM ".$prefix."kategorie where podkategorie = $id");
  15.           while ($row = mysql_fetch_array($sql_select1))
  16.       {
  17.             $id1 = $row["id"];
  18.           $nazwa1 = $row["nazwa"];
  19. ?>
  20.  
  21.     <a href="?kategoria_id=<? echo $id1;?>"><? echo $nazwa1;?></a>
  22.  
  23. <? } ?>
  24.  
  25.  
  26. <?
  27. $sql_select2 = mysql_query( "SELECT * FROM ".$prefix."kategorie where podkategorie = $id1");
  28.           while ($row = mysql_fetch_array($sql_select2))
  29.       {
  30.             $id2 = $row["id"];
  31.           $nazwa2 = $row["nazwa"];
  32. ?>
  33.  
  34.     <a href="?kategoria_id=<? echo $id2;?>"><? echo $nazwa2;?></a>
  35.  
  36. <? } ?>
  37. <? } ?>


Wywala mi 2 takie same błędy treści:
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource inkategorie.php on line 22


I w czym zrobiłem błąd, przecież można zapętlać 2 krotnie dry.gif
Błąd tyczy się, się tego że kategoria 1 nie ma pod sobą żadnych kategorii, natomiast kategoria 2 wyśiwetlana jest poprawnie bo są podkategorie i wtedy pętla ma się do czego odwołać.

Jakieś sugestie panowie ?
Droopy
zdaje się, że jedno z zapytań SQL jest niepoprawne i dlatego mysql_fetch_array wywala błąd.... dodaj do funkcji mysql_query() or die(mysql_error()); i zobacz co ci wyświetli
zman85
Cytat(Droopy @ 2005-11-03 22:14:31)
zdaje się, że jedno z zapytań SQL jest niepoprawne i dlatego mysql_fetch_array wywala błąd.... dodaj do funkcji mysql_query() or die(mysql_error()); i zobacz co ci wyświetli

Witaj,
nie wczytales sie chyba do konca,
zapytania sa poprawne, tylko jeśli w 2, 3, 4 ..... itd pętli znajdzie wynik nie spelniajacy wyrazenia "podkategorie = $id1" itd... wtedy wywala błąd, a chcę by nie wywalał błędu, poprostu jak nie ma to nie ma i koniec.
nospor
@zman Droopy napisal ci dobrze. masz bledne zapytanie. a masz bledne gdy pewnie te $id i $id1 ktorre inicujesz w czesniej w petlach nie sa okreslone, gdyz nie wchodzi do petli ani razu. musisz dac warunek, ze jesli nie okreslono zmiennych $id i $id1 to nie maja sie wykonywac zapytania, ktore korzystaly z tych zmiennych
zman85
Cytat(nospor @ 2005-11-04 07:46:17)
@zman Droopy napisal ci dobrze. masz bledne zapytanie. a masz bledne gdy pewnie te $id i $id1 ktorre inicujesz w czesniej w petlach nie sa okreslone, gdyz nie wchodzi do petli ani razu. musisz dac warunek, ze jesli nie okreslono zmiennych $id i $id1 to nie maja sie wykonywac zapytania, ktore korzystaly z tych zmiennych

Witaj,
więc w takim razie 2 osóbki mylić się nie mogą, Dziękuję za podpowiedź, a czy jest jakaś szansa by ktoś z Was, mógł zrobić ten warunek i wypisał go na forum ?
Oczywiście pytanie lamerskie, ale z moim php może mi zając trochę czasu sad.gif
nospor
Cytat
ale z moim php może mi zając trochę czasu
moze i tak, ale bys sie nauczyl smile.gif

  1. <?php
  2.  
  3. $sql_select = mysql_query( "SELECT * FROM ".$prefix."kategorie where podkategorie = 0");
  4.  
  5. while ($row = mysql_fetch_array($sql_select))
  6. {
  7. $id = $row["id"];
  8. $nazwa = $row["nazwa"];
  9. $sql = "SELECT * FROM ".$prefix."kategorie where podkategorie = $id";
  10. echo $sql.'<br />';
  11. $sql_select1 = mysql_query($sql) or die(mysql_error());
  12. while ($row = mysql_fetch_array($sql_select1))
  13. {
  14. $id1 = $row["id"];
  15. $nazwa1 = $row["nazwa"];
  16. $sql="SELECT * FROM ".$prefix."kategorie where podkategorie = $id1";
  17. echo $sql.'<br />';
  18. $sql_select2 = mysql_query($sql) or die(mysql_error());
  19. while ($row = mysql_fetch_array($sql_select2))
  20. {
  21.  $id2 = $row["id"];
  22.  $nazwa2 = $row["nazwa"];
  23. }
  24. }
  25. }
  26.  
  27. ?>

Usunalem html bo mi kod zaciemnial i poprawilem ci petle bo chyba odszedles od swego zamierzenia. Dodalem wyswieltanie ewentualnych bledow. jesli nadal cos nie tak bedzie to pokaz jakei bledy ci wyrzuci
zman85
Cytat(nospor @ 2005-11-04 08:00:56)
Cytat
ale z moim php może mi zając trochę czasu
moze i tak, ale bys sie nauczyl smile.gif

  1. <?php
  2.  
  3. $sql_select = mysql_query( "SELECT * FROM ".$prefix."kategorie where podkategorie = 0");
  4.  
  5. while ($row = mysql_fetch_array($sql_select))
  6. {
  7.     $id = $row["id"];
  8.     $nazwa = $row["nazwa"];
  9.     $sql = "SELECT * FROM ".$prefix."kategorie where podkategorie = $id";
  10.     echo $sql.'<br />';
  11.     $sql_select1 = mysql_query($sql) or die(mysql_error());
  12.     while ($row = mysql_fetch_array($sql_select1))
  13.     {
  14.         $id1 = $row["id"];
  15.         $nazwa1 = $row["nazwa"];
  16.         $sql="SELECT * FROM ".$prefix."kategorie where podkategorie = $id1";
  17.         echo $sql.'<br />';
  18.         $sql_select2 = mysql_query($sql) or die(mysql_error());
  19.         while ($row = mysql_fetch_array($sql_select2))
  20.         {
  21.            $id2 = $row["id"];
  22.            $nazwa2 = $row["nazwa"];
  23.         }
  24.     }
  25. }
  26.  
  27. ?>

Usunalem html bo mi kod zaciemnial i poprawilem ci petle bo chyba odszedles od swego zamierzenia. Dodalem wyswieltanie ewentualnych bledow. jesli nadal cos nie tak bedzie to pokaz jakei bledy ci wyrzuci

Nic dodać, nic ująć !

Bro jak nic się należy exclamation.gif biggrin.gif
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.