napisałem mini portal do którego można zarejestrować się podając maila osoby która nas poleciła podczas rejestracji.
Skrypt automatycznie przypisuje naszemu rekordowi w bazie maila tej osoby dzięki której założyliśmy konto.
Nasz rekord w bazie wygląda mniej więcej tak:
Imię Nazwisko Email hasło osobap(emal osoby polecajacej)
Jan Kowalski jak.kowalski@wp.pl jojpoejpfw rysiek.nowak@wp.pl
I teraz tworze drzewo poleceń.
Pobieram maila zalogowanego użytkownika (rysiek.nowak@wp.pl) i wyświetlam pod nim wszystkie maile jeden pod drugim które mają w bazie jako "osobap" email rysiek.nowak@wp.pll i są to osoby które założyły konto dzięki Ryśkowi.
Ale zanim pobiorę wszystkie tę maile po wczytaniu pierwszego rekordu z bazy dajmy na to "Jana" daje następną pętle która sprawdza czy "syn" Ryśka Jan też ma osoby pod sobą i dla nich też wyświetla jego "synów" i tak do 4 poziomów.
Napisałem strasznie słaby skrypt metodą kombinowania żeby tylko działał. Użyłem spacji żeby tworzyła się struktura drzewiasta

Wynik skryptu wygląda tak:
Rysiek twoje drzewo:
jan.kowalski@wp.pl
---------marlena@er.pl
---------jacek.dobry@ert.pl
milena@tralala.pl
andrzej@te.pl
---------michal@rerer.pl
---------grazyna@wewewe.pl
------------------bronislaw@perrt.pl
------------------czarek@resergr.pl
mietek@wp.pl
itd...
Jeszcze jest dodana zmiana koloru wyświetlenia zależnie od tego czy użytkownik jest aktywny czy nie ale to nie jest ważne.
I z góry uprzedzam pytania, tak wiem że to wszystko mogło by być w jednej pętli.
I tak: chciałbym żeby wyświetlenie było bardziej profesjonalne i ruchome. Czyli wyświetlają się tylko użytkownicy pod zalogowanym użytkownikiem i żeby wyświetlić synów tych użytkowników trzeba kliknąć plusik i następny plusik żeby wyświetlić następne poziomy. Wszystko połączone kreskami i ustawione poziomami. Jak np. tutaj: http://domanart.pl/dema/drzewo-plikow/index.php
Wiem że drzew jest pełno w sieci ale działają na zasadzie mam już pewną liczbę użytkowników wyświetlę ich JS'em i albo Ajax'em i jest ładne ruchome drzewo. Ale jeśli nie ma się ustalonej liczby użytkowników i ta liczba ciągle się zmienia to już dla mnie zaczynają się schodki.
Próbowałem przerabiać coś takiego ale nie wiem jak przekazać dane wyciągnięte z bazy do JS'a za pomocą phpa.
Czy w ogóle można łączyć phpa i JS'a?
Poniżej wklejam kod mojego skryptu.
Proszę o podpowiedzi jak z tego wybrnąć.
<?php //1 obrot $wynik = $polaczenie->query("SELECT * FROM uzytkownicy WHERE osobap='$email'"); if ($wynik ->num_rows == 0) { } else{ echo "Użytkownik: ".'<span style="color:green;">aktywny</span>/<span style="color:red;">nieaktywny</span><br><br>'; } $wynik = $polaczenie->query("SELECT * FROM uzytkownicy WHERE osobap='$email'"); if ($wynik ->num_rows > 0) { for($a = 1; $a <= $wynik ->num_rows; $a++) { $row = $wynik ->fetch_assoc(); if($row["aktywny"]>0){ echo '<div class="zielony"><i class="fa fa-chevron-right" aria-hidden="true"></i> '.$row["email"].' <i class="fa fa-long-arrow-right" aria-hidden="true"></i> 10pkt </div>'; } else{ echo '<div class="error"><i class="fa fa-chevron-right" aria-hidden="true"></i> '.$row["email"].'</div>'; } //2obrot $zmienna_email = $row["email"]; $wynik_drugi = $polaczenie->query("SELECT * FROM uzytkownicy WHERE osobap='$zmienna_email'"); if ($wynik_drugi ->num_rows > 0) { for($i = 1; $i <= $wynik_drugi ->num_rows; $i++) { $row = $wynik_drugi ->fetch_assoc(); if($row["aktywny"]>0){ echo '<div class="zielony">             <i class="fa fa-level-down" aria-hidden="true"></i> '.$row["email"].' <i class="fa fa-long-arrow-right" aria-hidden="true"></i> 10pkt </div>'; } else{ echo '<div class="error">             <i class="fa fa-level-down" aria-hidden="true"></i> '.$row["email"].'</div>'; } //3obrot $zmienna_email3 = $row["email"]; $wynik_trzeci = $polaczenie->query("SELECT * FROM uzytkownicy WHERE osobap='$zmienna_email3'"); if ($wynik_trzeci ->num_rows > 0) { for($i = 1; $i <= $wynik_trzeci ->num_rows; $i++) { $row = $wynik_trzeci ->fetch_assoc(); if($row["aktywny"]>0){ echo '<div class="zielony">          <i class="fa fa-level-down" aria-hidden="true"></i> '.$row["email"].' <i class="fa fa-long-arrow-right" aria-hidden="true"></i> 8pkt</div>'; } else{ echo '<div class="error">        <i class="fa fa-level-down" aria-hidden="true"></i> '.$row["email"].'</div>'; } //4obrot $zmienna_email4 = $row["email"]; $wynik_czwarty = $polaczenie->query("SELECT * FROM uzytkownicy WHERE osobap='$zmienna_email4'"); if ($wynik_czwarty ->num_rows > 0) { for($i = 1; $i <= $wynik_czwarty ->num_rows; $i++) { $row = $wynik_czwarty ->fetch_assoc(); if($row["aktywny"]>0){ echo '<div class="zielony">      &thinsp    <i class="fa fa-level-down" aria-hidden="true"></i> '.$row["email"].' <i class="fa fa-long-arrow-right" aria-hidden="true"></i> 8pkt </div>'; } else{ echo '<div class="error">                <i class="fa fa-level-down" aria-hidden="true"></i> '.$row["email"].'</div>'; } } } } } } } } } ?>
Kurcze, nikt nie jest w stanie pomóc?