ďťż

[php] [mysql] Jak stworzyć menu z podkategoriami

       

Podstrony


telcocafe

Witam !

Mam taki problem. Próbuję zrobić na stronie menu z podkategoriami, wszystko ma być oparte na php i mySQL. Ma to wyglądać w ten sposób:

Kategoria 1
- link1
- link2
- link3
Kategoria 2
- link4
- link5
Kategoria 3
- link6
itd.

Stworzyłem sobie w bazie 2 tabele menu_kategorie i menu_sub_kategorie
W tabeli menu_kategorie mam
nazwa_kategorii
id_kategori

w tabeli menu_sub_kategorie mam
nazwa_sub_kategorii
id_sub_kategorii

no i wszystko wydaje się być ok ale... jak ma wyglądać kod php który to poprawnie wyświetli (czyli tak jak napisałem wyżej). Dodam że wiem jak pobrać i wyświetlić dane z bazy, ale nie mam żadnego pomysłu jak stworzyć coś takiego jak wyżej.



Ale skąd skrypt ma wiedzieć w której kategorii ma być subkategoria? W tabeli menu_sub_kategorie dodaj pole id_kategori, odpowiadające temu z tabeli kategorie.
Użytkownik mmatheww edytował ten post 06 marzec 2006, 12:24
no dobra dodałem ale i tak nie zbliżyło mnie to do rozwiązania problemu.

no i teraz biezesz pierwsza kategorie, i robisz petle w ktorej drukujesz wszystkie podkategorie ktore maja id kategorii pasujacy. pozniej drukujesz druga kat, i znowu podkategorie.



IMHO to może być tak $db=mysql_pconnect('host', 'login, 'haslo'); mysql_select_db("baza"); $zapytanie="select * from `menu_kategorie`"; $wynik=mysql_query($zapytanie); $ile=mysql_num_rows($wynik); for ($id=0; $id<$ile; $id++) {    $wiersz=mysql_fetch_array($wynik);    echo '<a href=index.php?kategoria='.$wynik[id_kategorii].'>'.$wynik[nazwa_kategorii] .'</a><br>'; // tu wyedytuj sobie odnosnik    $zapytanie2="select * from `menu_sub_kategorie` where `id_kategorii` = '$wynik[id_kategorii]'";    $wynik2=mysql_query($zapytanie2);    $ile2=mysql_num_rows($wynik2);    for ($id2=0; $id<$ile2; $id2++){        $wiersz2=mysql_fetch_array($wynik2);        echo '- <a href=index.php?sub_kategoria='.$wynik2[id_sub_kategorii].'>'.$wynik2[ nazwa_sub_kategorii].'</a><br>'; // tu wyedytuj sobie odnosnik''    } }

Niestety kod nie działa (próbowałem trochę pozmieniać ale nic to nie dało) Próbowałem też z czymś takim:

<?php              $querry=mysql_query("SELECT * FROM menu_kategorie");  if(!empty($querry)){  while($row=mysql_fetch_array($querry)){  $nk=$row["nazwa_kategorii"];  $idk=$row["id_kategorii"];  echo "<b>"; echo "$nk"; echo "</b><br>";  }  }  $querry=mysql_query("SELECT * FROM menu_sub_kategorie WHERE id_kategorii=$idk");  if(!empty($querry)){  while($row=mysql_fetch_array($querry)){  $nsk=$row["nazwa_sub_kategorii"];  echo "- "; echo"$nsk"; echo "<br>";   }   } ?>

kod wyświetla wszystkie kategorie, ale nie wyświetla podkategorii, tzn. wyświetla tylko ostatnie podkategorie. Czyli jeśli mam id podkategorii 1 i 2 to wyświetli tylko te z id 2

wyświetla coś takigo:
kategoria 1
kategoria 2
- link4
- link5
Użytkownik pit83 edytował ten post 06 marzec 2006, 14:32

Witam !

Mam taki problem. Próbuję zrobić na stronie menu z podkategoriami, wszystko ma być oparte na php i mySQL. Ma to wyglądać w ten sposób:

Kategoria 1
- link1
- link2
- link3
Kategoria 2
- link4
- link5
Kategoria 3
- link6
itd.

Stworzyłem sobie w bazie 2 tabele menu_kategorie i menu_sub_kategorie
W tabeli menu_kategorie mam
nazwa_kategorii
id_kategori

w tabeli menu_sub_kategorie mam
nazwa_sub_kategorii
id_sub_kategorii

no i wszystko wydaje się być ok ale... jak ma wyglądać kod php który to poprawnie wyświetli (czyli tak jak napisałem wyżej). Dodam że wiem jak pobrać i wyświetlić dane z bazy, ale nie mam żadnego pomysłu jak stworzyć coś takiego jak wyżej.


Niestety kod nie działa


Czy może to być skrypt w JS? Bardzo łatwo napisać taki skrypt w JS. Jeśli może to daj znać - jak będe miał czas to pomogę

nie, chciałbym żeby to było w php

Kiedy wklejam ten kod to nic się nie dzieje, nic nie jest wyświetlane. Kiedy zmienię znaki "`" na apostrofy " ' " otrzymuję komunikat:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\strona\index.php on line 63

Próbowałem już różnych kombinacji z tym kodem i nic, zawsze otrzymuję komunikat o błędzie albo żadne dane nie są wyświetlane.

//edit
No jakoś sobie poradziłem, tzn. skopiowałem fragment innego skryptu i lekko go przerobiłem. :)
Mam teraz coś takiego:

  <?php // zapytanie do bazy pobranie kategorii głównych $query = "SELECT * FROM menu_kategorie"; $result = mysql_query($query); // wyświetlenie wyników while($row= mysql_fetch_assoc($result)) { echo "$row[nazwa_kategorii]<br>";     //zapytanie do bazy pobranie podkategorii   $query2 = "SELECT * FROM menu_sub_kategorie WHERE id_kategorii=$row[id_kategorii]"; $result2 = mysql_query($query2);     //pobranie i wyświetlenie wyników while($row2= mysql_fetch_assoc($result2)) { echo "$row2[nazwa_sub_kategorii]<br>"; } }    ?>
Użytkownik pit83 edytował ten post 06 marzec 2006, 23:18
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.