Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Generator Listy z MySQL
Gabrielx
post
Post #1





Grupa: Zarejestrowani
Postów: 157
Pomógł: 2
Dołączył: 24.03.2009

Ostrzeżenie: (0%)
-----


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)

Ten post edytował Gabrielx 26.12.2012, 14:29:23
Go to the top of the page
+Quote Post
radziopoke
post
Post #2





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

Ostrzeżenie: (0%)
-----


tutaj masz mniej więcej coś takiego w php. Wystarczy, że odpowiednio skomponujesz z danych mysql tablicę, dostosujesz trochę skrypt i powinno współgrać (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
Gabrielx
post
Post #3





Grupa: Zarejestrowani
Postów: 157
Pomógł: 2
Dołączył: 24.03.2009

Ostrzeżenie: (0%)
-----


Chodziło o listę tak jak w temacie (IMG:style_emoticons/default/smile.gif) (ul, li,ol)
Tamto tylko było przedstawieniem graficznym mojego zamysłu (IMG:style_emoticons/default/smile.gif)

Ps. sory że nie wyraziłem się jasno

Ten post edytował Gabrielx 26.12.2012, 16:18:36
Go to the top of the page
+Quote Post
memory
post
Post #4





Grupa: Zarejestrowani
Postów: 616
Pomógł: 84
Dołączył: 29.11.2006
Skąd: bełchatów

Ostrzeżenie: (0%)
-----


  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
Go to the top of the page
+Quote Post
Gabrielx
post
Post #5





Grupa: Zarejestrowani
Postów: 157
Pomógł: 2
Dołączył: 24.03.2009

Ostrzeżenie: (0%)
-----


Wielkie dzięki, o to mi chodziło (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 09:46