Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generator Listy z MySQL
Forum PHP.pl > Forum > PHP
Gabrielx
Witam.

Załóżmy mam taką tabelę w MySQL:
Kod
1---Jeden----0
2---Dwa------0
3---Trzy------2
4---Cztery---2
5---Pięć------4
6---Sześć----0


Czyli po wyświetleniu powinno wyglądać tak:

Kod
|Jeden
|Dwa
||--Trzy
||--Cztery
|||------Pięć
|Sześć

Jak taki efekt osiągnąć generując z DB, za pomocą PHP. Czytałem trochę o RecursiveIteratorIterator oraz RecursiveIterator, lecz nie wiem za bardzo jak zastosować. Dodatkowo każdy element miałby mieć dodaną klasę css (w zależności czy da się rozwinąć, czy jest rozwinięty)
radziopoke
tutaj masz mniej więcej coś takiego w php. Wystarczy, że odpowiednio skomponujesz z danych mysql tablicę, dostosujesz trochę skrypt i powinno współgrać smile.gif
  1. <html>
  2. <body>
  3. <?php
  4. $tab[1]['name']='jeden';
  5. $tab[1]['from']=0;
  6. $tab[2]['name']='dwa';
  7. $tab[2]['from']=0;
  8. $tab[3]['name']='trzy';
  9. $tab[3]['from']=2;
  10. $tab[4]['name']='cztery';
  11. $tab[4]['from']=2;
  12. $tab[5]['name']='piec';
  13. $tab[5]['from']=4;
  14. $tab[6]['name']='szesc';
  15. $tab[6]['from']=0;
  16. $ile=6;
  17. $text = '';
  18. for($i=1; $i<=$ile; $i++)
  19. {
  20. $from=$tab[$i]['from'];
  21. while($from!=0)
  22. {
  23. $text .= '-';
  24. $from = $tab[$from]['from'];
  25. }
  26. $text .= $tab[$i]['name'].'<br>';
  27. }
  28.  
  29. echo $text;
  30. ?>
  31. </body>
  32. </html>


efekt:
Kod
jeden
dwa
-trzy
-cztery
--piec
szesc
Gabrielx
Chodziło o listę tak jak w temacie smile.gif (ul, li,ol)
Tamto tylko było przedstawieniem graficznym mojego zamysłu smile.gif

Ps. sory że nie wyraziłem się jasno
memory
  1. private function children($rows, $id) {
  2. foreach ($rows as $row) {
  3. if ($row->parent_id == $id)
  4. return true;
  5. }
  6. return false;
  7. }
  8.  
  9. public function mapTree($rows, $parent = 0, $class = "li-menu") {
  10. $result = "<ul>";
  11. foreach ($rows as $row) {
  12. if ($row->parent_id == $parent) {
  13. $result.= "<li><a href='$row->url' class='$class' >$row->name</a>";
  14. if (children($rows, $row->id))
  15. $result.= mapTree($rows, $row->id);
  16. $result.= "</li>";
  17. }
  18. }
  19. $result.= "</ul>";
  20.  
  21. return $result;
  22. }


przykladowe dane
  1. id , name, parent_id +url
  2. 1---Jeden----0
  3. 2---Dwa------0
  4. 3---Trzy------2
  5. 4---Cztery---2
  6. 5---Pięć------4
  7. 6---Sześć----0
Gabrielx
Wielkie dzięki, o to mi chodziło 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.