Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql i php] menu
Forum PHP.pl > Forum > Przedszkole
Gość_ares
mam taki kod


  1. <?php
  2. function display_menu($PAR1)
  3.  {
  4. // pobierz parametry glownego wezla
  5. $r = mysql_query(&#092;"SELECT * FROM 
  6. drzewko WHERE parent='0'&#092;");
  7.  
  8.  while($row = mysql_fetch_array($r)) // wszytkie glowne kategorie
  9.  {
  10.  $name =$row[&#092;"nazwa\"];
  11.  $parent =$row[&#092;"parent\"];
  12.  $id =$row[&#092;"id\"];
  13.  
  14. $ri = mysql_query(&#092;"SELECT * FROM 
  15. drzewko WHERE parent='$PAR1'&#092;");
  16.  
  17.  while($rowi = mysql_fetch_array($ri)) // podkategorie
  18.  {
  19.  $pname =$rowi[&#092;"nazwa\"];
  20.  
  21.  $w .= &#092;"$name <BR><b>$pname</b>\";
  22. }
  23. }
  24.  return $w;
  25.  } // end display_menu();
  26. ?>


końcowym wynikiem tego czegoś powinno byc spis kategorii w takim stylu

kategoria 1
kategoria 2
kategoria 3
kategoria 4
- pod kategoria 1.4
kategoria 5
- podkategoria 1.5

Z tym ze coś nie tak jak wejde np do działu gdzie jest podkategoria to on ja tyle razy pokazuje ile razy petla while zlicza rekor .... i jest zle ....


[CODE]

  1. CREATE TABLE `drzewko` (
  2. `id` int(8) NOT NULL AUTO_INCREMENT,
  3. `nazwa` varchar(32) DEFAULT NULL,
  4. `parent` int(8) NOT NULL DEFAULT '0',
  5. `right` int(8) NOT NULL DEFAULT '0',
  6. PRIMARY KEY (`id`),
  7. KEY `parent` (`parent`),
  8. KEY `right` (`right`)
  9. ) TYPE=MyISAM AUTO_INCREMENT=9 ;
wyzej napisalem rzut bazy danych

PS jak sie kliknie na kategorie to wtedy pojawiaja sie podkategorie tak na margiinesie ale to wiem jak zrobic jeden IF tylko mam klopot z prawidlowym wyswetleniem ...
SongoQ
Cytat
Z tym ze coś nie tak jak wejde np do działu gdzie jest podkategoria to on ja tyle razy pokazuje ile razy petla while zlicza rekor .... i jest zle ....

Chcesz wycaignac 1 raz kategorie czy zliczyc ilosc kategori?

Bo do liczenia ilosci rekordow albo dajesz zapydanie COUNT albo sprawdzasz ilosc rekordow mysql_num_rows.
Gość_ares
1 raz wyciagnac kategorie i pod kategorie .. tak jak wyzej przedstawielm
Marcin_m
Proponuję ci zobaczyć mój skrypt struktury drzewiastej.

Drzewo

Najlepiej do wyświetlania struktur drzewiastych stosowac funkcje rekurencyjne, gdzie
jako główny argument przekazujesz ID rodzica, a potem kierujesz zapytanie o
jego potomków i tak zwrócony ID potomka znowu dajesz do funkcji. W ten sposób możesz dowolnie wyświetlać sobie drzewo, w skrócie wygląda to tak:

funkcja drzewo($IDRODZICA)
{
->zapytaj o osobników mających jako rodzica IDRODZICA
for($i=0;$i<ilosc_potomków;$i++)
{
->wyswietl informacje o potomku
->pobierz ID potomka do $IDPOTOMKA
drzewo($IDPOTOMKA;
}
}

W ten sposób można także kierować potomków do tablic i potem ich wyświetlać
Zauważ że nie ma potrzeby stosować żadnych przerwań, ponieważ jeżeli nie ma już potomków dla danego osobnika to petla for nie wykonuje sie, a zatem wracamy do pierwotnej fukncji rekurencyjnej.

No i jeżeli chcesz mieć rozwijaną listę to zastosuj skrypt java z mojego przykładu, lub też utwórz zmienną sesji w której będziesz zapisywał czy wyświetlać danego
potomka. Aczkolwiek zastosowanie java script wydaje mi się szybszym sposobem.
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.