Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> while x2 i wywala błąd
zman85
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.05.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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 ?

Ten post edytował zman85 3.11.2005, 23:01:29
Go to the top of the page
+Quote Post
Droopy
post
Post #2





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 17.01.2004
Skąd: Suchedniów k/Kielc

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


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





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.05.2005

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


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





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




@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
Go to the top of the page
+Quote Post
zman85
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.05.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ale z moim php może mi zając trochę czasu
moze i tak, ale bys sie nauczyl (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
zman85
post
Post #7





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 25.05.2005

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


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
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: 3.10.2025 - 05:21