Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przekonwertowanie bazy danych do konstrukcji drzewa typu nested set
Forum PHP.pl > Forum > Przedszkole
aspireone
Napisałem skrypt który z pliku b.txt zapisuje w bazie wszystkie kluby z ich ligami.

plik b.txt ma strukturę :

Ekstraklasa %% Ruch Chorzów
Ekstraklasa %% Śląsk Wrocław
Ekstraklasa %% Widzew Łódź
Ekstraklasa %% Wisła Kraków
Ekstraklasa %% Zagłębie Lubin
I liga %% Arka Gdynia
I liga %% Bogdanka Łęczna
I liga %% Cracovia
I liga %% Dolcan Ząbki
V liga %% Kujawsko-pomorskie %% Kujawsko-pomorska II %% Piast Złotniki Kujawskie
V liga %% Kujawsko-pomorskie %% Kujawsko-pomorska II %% Sadownik Waganiec
V liga %% Kujawsko-pomorskie %% Kujawsko-pomorska II %% Start Radziejów
V liga %% Kujawsko-pomorskie %% Kujawsko-pomorska II %% Zdrój Ciechocinek
V liga %% Kujawsko-pomorskie %% Kujawsko-pomorska II %% Zjednoczeni Piotrków Kujawski
V liga %% Lubelskie %% Biała Podlaska %% Bizon Jeleniec
V liga %% Lubelskie %% Biała Podlaska %% Dwernicki Stoczek Łukowski
V liga %% Lubelskie %% Biała Podlaska %% GLKS Rokitno
V liga %% Lubelskie %% Biała Podlaska %% Granica Terespol
V liga %% Lubelskie %% Biała Podlaska %% Grom Kąkolewnica
V liga %% Lubelskie %% Biała Podlaska %% Janowia Janów Podlaski


skrypt który wyczytuje do bazy danych powyższe dane wygląda tak :

  1. <?php
  2. header("Content-type: text/html; charset=utf-8");
  3. include("namiary.php");
  4. $p = file('b.txt');
  5.  
  6. $tmpcount = count($p);
  7. for ($i = 0; $i < $tmpcount; $i++) {
  8. $l = explode('%%',trim($p[$i]));
  9.  
  10.  
  11. $z0=empty($l[0]);
  12. $z1=empty($l[1]);
  13. $z2=empty($l[2]);
  14. $z3=empty($l[3]);
  15.  
  16. $licz+=1;
  17.  
  18. #1
  19. if($z0==false and $z1==false and $z2==true and $z3==true){
  20. echo("$licz. $l[1] <br>
  21. $l[0] <br>");
  22.  
  23. mysql_query("SET CHARSET utf8"); // polskie znaki
  24. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`"); // polskie znaki
  25. $dodaj11="INSERT INTO kluby SET nazwa_klubu='$l[1]', id_liga='$l[0]'";
  26. mysql_query($dodaj11);
  27.  
  28. }
  29.  
  30. #2
  31. if($z0==false and $z1==false and $z2==false and $z3==true){
  32. echo("$licz. $l[2] <br>
  33. $l[0] <br> $l[1] <br>");
  34.  
  35. mysql_query("SET CHARSET utf8"); // polskie znaki
  36. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`"); // polskie znaki
  37. $dodaj11="INSERT INTO kluby SET nazwa_klubu='$l[2]', id_liga='$l[0]', id_grupa='$l[1]'";
  38. mysql_query($dodaj11);
  39. }
  40.  
  41. #3
  42. if($z0==false and $z1==false and $z2==false and $z3==false){
  43. echo("$licz. $l[3] <br>
  44. $l[0] <br> $l[1] / $l[2] <br>");
  45.  
  46. mysql_query("SET CHARSET utf8"); // polskie znaki
  47. mysql_query("SET NAMES `utf8` COLLATE `utf8_polish_ci`"); // polskie znaki
  48. $dodaj11="INSERT INTO kluby SET nazwa_klubu='$l[3]', id_liga='$l[0]', id_grupa='$l[1]', id_grupa_miast='$l[2]'";
  49. mysql_query($dodaj11);
  50. }
  51.  
  52.  
  53.  
  54. echo '<br />';
  55. echo "\n";
  56. }
  57. ?>



po zapisaniu do bazy danych w tabele "kluby" wszytko ładnie wygląda i chodzi! Baza wygląda tak :

Moje pytanie brzmi jak prze konwertować powyższa strukturę bazy do konstrukcji drzewa typu nested set ? Ma ktoś pomysł ?

Chodzi mi głównie aby mógł w jakiś sposób stworzyć drzewo li, ul do menu z góry dziękuje smile.gif
b4x
https://github.com/RichardKnop/nested-set-model

Nie sprawdzałem, ale powinno się przydać :-)
Masz przykłady tam przykłady itd.
aspireone
Niestety jestem nowicjuszem nic mi to nie mówi trudno smile.gif Mimo wszytko dziękuje pozdrawiam smile.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.