Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: drzewka nieograniczona ilość wgłębień ...
Forum PHP.pl > Forum > PHP > Pro > Archiwum Pro
e4you
Hej.


napisałem coś takiego i działa ale naradzie na 5 wgłębień jak zrobić nieograniczonie juz wiem.


  1. <?
  2. // konfikuracja laczenie z baza danych
  3. $strZnakRoz='<font color=\"#FF0000\"><b>&raquo;</b></font>';
  4. $host_mysql = &#092;"localhost\";
  5. $user_mysql = &#092;"root\";
  6. $pass_mysql = &#092;"\";
  7. $db = mysql_connect(&#092;"$host_mysql\", \"$user_mysql\", \"$pass_mysql\");
  8. mysql_select_db(&#092;"whourl\", $db);
  9.  
  10. $strPokazDane = mysql_query (&#092;"SELECT * FROM grupa\");
  11. $strLiczRekord = mysql_query (&#092;"SELECT Max(pozycja) FROM grupa\");
  12. $strMaxIdbase = mysql_fetch_row($strLiczRekord); // Najwyzsze ID grupy
  13. $strMasID = $strMaxIdbase[0];
  14. echo &#092;"<BR>index.php?url=$url<br>\";
  15.  
  16. // rozwalanie zmiennej URL na czesci aby identyfikować dane
  17. $strDane1 = explode('.', $url);
  18.  
  19. // liczenie kropek (.) w adresie ze zmiennej
  20. $z =&#092;".\";
  21. for($i=0;$i<strlen($url);$i++) {
  22. if (strpos($z,$url[$i])>-1) $ile++;
  23. }
  24. // liczenie podkategori wedlug zmiennej url
  25.  
  26.  
  27. $strGloKat = $strDane1[0];
  28. $strGloKat1 = $strDane1[1];
  29. $strGloKat2 = $strDane1[2];
  30. $strGloKat3 = $strDane1[3];
  31. $strGloKat4 = $strDane1[4];
  32.  
  33. $strPokazStrukture = mysql_query (&#092;"SELECT * FROM grupa WHERE pozycja = '1' AND id = '$strGloKat'\");
  34. while($rowSrt = mysql_fetch_array($strPokazStrukture))
  35. {
  36.  $strName1= $rowSrt[&#092;"name\"];
  37.  $strDzewo1 = &#092;"$strName1 $strZnakRoz\";
  38.  
  39. $strPokazStrukture_2 = mysql_query (&#092;"SELECT * FROM grupa WHERE pozycja = '2' AND id = '$strGloKat1'\");
  40. while($rowSrt_2 = mysql_fetch_array($strPokazStrukture_2))
  41. {
  42.  $strName1_2= $rowSrt_2[&#092;"name\"];
  43.  $strDzewo1_2 = &#092;"$strName1_2 $strZnakRoz\";
  44.  
  45. $strPokazStrukture_3 = mysql_query (&#092;"SELECT * FROM grupa WHERE pozycja = '3' AND id = '$strGloKat2'\");
  46. while($rowSrt_3 = mysql_fetch_array($strPokazStrukture_3))
  47. {
  48.  $strName1_3= $rowSrt_3[&#092;"name\"];
  49.  $strDzewo1_3 = &#092;"$strName1_3 $strZnakRoz\";
  50.  
  51. $strPokazStrukture_4 = mysql_query (&#092;"SELECT * FROM grupa WHERE pozycja = '4' AND id = '$strGloKat3'\");
  52. while($rowSrt_4 = mysql_fetch_array($strPokazStrukture_4))
  53. {
  54.  $strName1_4= $rowSrt_4[&#092;"name\"];
  55.  $strDzewo1_4 = &#092;"$strName1_4 $strZnakRoz\";
  56.  
  57. $strPokazStrukture_5 = mysql_query (&#092;"SELECT * FROM grupa WHERE pozycja = '5' AND id = '$strGloKat4'\");
  58. while($rowSrt_5 = mysql_fetch_array($strPokazStrukture_5))
  59. {
  60.  $strName1_5= $rowSrt_5[&#092;"name\"];
  61.  $strDzewo1_5 = &#092;"$strName1_5 $strZnakRoz\";
  62.  
  63. }
  64.  }
  65. }
  66.  }
  67. }
  68.  
  69. $rest = &#092;"<BR><b>$strDzewo1 $strDzewo1_2 $strDzewo1_3 $strDzewo1_4 $strDzewo1_5</b>\";
  70. $adres = substr(&#092;"$rest\", 0, -1); 
  71. echo &#092;"$adres\";
  72. ?>


ale może ktoś wie jak do tego zrobić katalog tych działów teraz po sama nawigacja jest ok

działa to na zasadzie ze z adresu wyciagana jest zminna URL

np index.php?url=1.2.32.322 itp .....

i to jest zamieniane na jakąs strukture drzewa ...

jak napisac do tego katalog nie mam pomyslu

struktura bazy tak wyglada


  1. CREATE TABLE `grupa` (
  2. `id` text NOT NULL,
  3. `name` text NOT NULL,
  4. `pozycja` text NOT NULL,
  5. `parent` text NOT NULL,
  6. `powiazania` text NOT NULL
  7. ) TYPE=MyISAM;
  8.  
  9. --
  10. -- Zrzut danych tabeli `grupa`
  11. --
  12.  
  13. INSERT INTO `grupa` VALUES ('1', 'Komputery', '1', '', '');
  14. INSERT INTO `grupa` VALUES ('2', 'Samochody', '1', '', '');
  15. INSERT INTO `grupa` VALUES ('1', 'Monitory', '2', '1', '');
  16. INSERT INTO `grupa` VALUES ('2', 'Modemy', '2', '1', '');
  17. INSERT INTO `grupa` VALUES ('3', 'Grafika', '2', '1', '');
  18. INSERT INTO `grupa` VALUES ('4', 'Audi', '2', '2', '');
  19. INSERT INTO `grupa` VALUES ('1', 'Pentagram 1-/1000 mb', '3', '', '');
  20. INSERT INTO `grupa` VALUES ('2', 'Gfors', '3', '', '');
  21. INSERT INTO `grupa` VALUES ('5', 'Mazda', '2', '2', '');
  22. INSERT INTO `grupa` VALUES ('3', '80', '3', '', '');
  23. INSERT INTO `grupa` VALUES ('4', 'a4', '3', '', '');
  24. INSERT INTO `grupa` VALUES ('2', 'benzyna', '4', '', '');
  25. INSERT INTO `grupa` VALUES ('1', 'ropa', '4', '', '');


jakieś pomysły?
kicaj
Zastosuj rekurencje
Vengeance
Hmm a może przedstawicie swoje sprawdzone sposoby na struktury drzewiaste (w mysql). Musze coś swojego teraz opracować aby było dość elastyczne i nie robiło 3000 zapytań ;] Ale nie mam z tym dużego doświadczenia :/ prosze o rade speców ;]
kicaj
Na php.pl jest art, na ktorym wszystko oparte jest na 1 (lub 2) zaptaniu SQL.
A na forum znajdziesz wiecej sposobow, gdzie wszystko robi php.
e4you
a jak zamienic wyzej przedstawiony kod tak zeby petla while generowalo te zapytania .... o co z tym katalogiem ?


mam taki kod ale cos nie dziala

  1. <?
  2. // konfikuracja laczenie z baza danych
  3. $strZnakRoz='<font color=\"#FF0000\"><b>&raquo;</b></font>';
  4. $host_mysql = &#092;"localhost\";
  5. $user_mysql = &#092;"root\";
  6. $pass_mysql = &#092;"\";
  7. $db = mysql_connect(&#092;"$host_mysql\", \"$user_mysql\", \"$pass_mysql\");
  8. mysql_select_db(&#092;"whourl\", $db);
  9.  
  10. $strPokazDane = mysql_query (&#092;"SELECT * FROM grupa\");
  11. $strLiczRekord = mysql_query (&#092;"SELECT Max(pozycja) FROM grupa\");
  12. $strMaxIdbase = mysql_fetch_row($strLiczRekord); // Najwyzsze ID grupy
  13. $strMasID = $strMaxIdbase[0];
  14. echo &#092;"<BR>index.php?url=$url<br>\";
  15.  
  16. // rozwalanie zmiennej URL na czesci aby identyfikować dane
  17. $strDane1 = explode('.', $url);
  18.  
  19. // liczenie kropek (.) w adresie ze zmiennej
  20. $z =&#092;".\";
  21. for($i=0;$i<strlen($url);$i++) {
  22.   if (strpos($z,$url[$i])>-1) $ile++;
  23. } 
  24. // liczenie podkategori wedlug zmiennej url
  25.  
  26.  
  27. $strGloKat  = $strDane1[0];
  28. $strGloKat1 = $strDane1[1];
  29. $strGloKat2 = $strDane1[2];
  30. $strGloKat3 = $strDane1[3];
  31. $strGloKat4 = $strDane1[4];
  32.  
  33. echo &#092;"liczba $strGloKat1<BR>\";
  34. echo &#092;"ilosc petli $ile\";
  35.  
  36. $strPokazStrukture  = mysql_query (&#092;"SELECT * FROM grupa WHERE pozycja = '1' AND id = '$strGloKat'\");
  37. while($rowSrt = mysql_fetch_array($strPokazStrukture))
  38. {
  39.  $strNameG= $rowSrt[&#092;"name\"];
  40.  $strDzewo1 = &#092;"$strNameG $strZnakRoz\";
  41. }
  42.  
  43. while ($i <= $ile)
  44. {
  45. $GLOBALS['strPokazStrukture'.$i] = mysql_query (&#092;"SELECT * FROM grupa WHERE pozycja = '$i' AND id = '$strGloKat1'\");
  46. while($GLOBALS['rowSrt'.$i] = mysql_fetch_array($GLOBALS['strPokazStrukture'.$i]))
  47. {
  48.  $GLOBALS['strName'.$i]  = $GLOBALS['rowSrt'.$i][&#092;"name\"];
  49. }
  50. $i++;
  51. }
  52.  
  53.   $rest = &#092;"<BR><b>$strNameG $strName1 $strName2 $strName3 $strName4</b>\";
  54.   $adres = substr(&#092;"$rest\", 0, -1); 
  55.   echo &#092;"$adres\";
  56.  
  57.  
  58.  
  59. ?>


PS tylko nie odsyłac mnie do artykulu na php.pl robie swoj system drzewek i niech tak zostanie
hwao
Najlepsze drzewka da sie zrobic tzn:
Drzewka ip.
Czemu ip poniewaz wygladaja mniej wiecej tak
Kod
2.323.42432.5354353

Nie sa one ograniczone w zadnen sposob( potencjalnie ;-) )
Poprobuj je tak napisac a nie bedziesz mial problemow :-)
Do wybrani tego co Ci trzeba 1 zapytanie dla czałej rodziny tez 1, dodanie tez 1edno :-)
e4you
hwao moze jakis przyklad robie na takiej zasadzie i dziala ale nie wiem jak zrobic katalog ze wejde do jakiej kategorii i pokaza sie inne itp..
bendi
przykladzik
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.