Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Drzewko parent_id - menu rozwijane
quality
post
Post #1





Grupa: Zarejestrowani
Postów: 172
Pomógł: 9
Dołączył: 13.02.2006
Skąd: Warszawa

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


Witam.

Siedzę od dłuższego czasu nad zrobieniem drzewa kategorii.
Przeczytałem chyba wszystkie posty dotyczące tego tematu.
Jednak nadal mnie dręczy jedna sytuacja.

Jak rekurencyjnie zrobić menu rozwijane na bazie drzewka ID | PARENT_ID | GLEBIA | NAZWA ?


Może ktoś mi pomoc bo już nie mogę nawet myślec (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Pozdrawiam.

Coś wykombinowałem.

Tylko nie wiem jak tą funkcję przerobić żeby wywoływała się rekurencyjnie, bo w obecnej postaci są 3 pętle i tyle może być zagłębień.
Aha i moje id pobierane metodą $_GET wygląda np przy 3 zaglebieniach ?id=4,6.

Oto kod:
  1. <?php
  2. public function pokazMenuCC($gg)
  3. {  
  4. $ex = explode (",",$_GET['id']);
  5. echo count($ex);
  6. print_r ($ex);
  7. $odstep="&nbsp;";
  8. //for($i=0; $i < count($ex); $i++)
  9. //{  
  10.  
  11. $question="SELECT * FROM `kategorie` WHERE `rodzic`= '0';";
  12. $results=mysql_query($question);
  13. while($row=mysql_fetch_array($results)) 
  14. {
  15.  $dane .= $odstep.'<a href="?id='.$row['id'].'">'.$row['pl'].'</a><Br>';
  16. if($ex[0]==$row['id'])
  17. {
  18. $question2="SELECT * FROM `kategorie` WHERE `rodzic`= '".$ex[0]."';";
  19. $results2=mysql_query($question2);
  20. while($row2=mysql_fetch_array($results2)) 
  21. {
  22. $dane .= $odstep.''.$odstep.'<a href="?id='.$row2['id'].'">'.$row2['pl'].'</a><Br>';
  23. if($ex[1]==$row2['id'])
  24. {
  25. $question3="SELECT * FROM `kategorie` WHERE `rodzic`= '".$ex[1]."';";
  26. $results3=mysql_query($question3);
  27. while($row3=mysql_fetch_array($results3)) 
  28. {
  29. $dane .= $odstep.''.$odstep.'<a href="?id='.$row3['id'].'">'.$row3['pl'].'</a><Br>';
  30. }
  31. }
  32. }
  33. }
  34. //}
  35. }
  36. return $dane;
  37. }
  38. ?>


Ten post edytował quality 9.10.2007, 19:32:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tommy4
post
Post #2





Grupa: Zarejestrowani
Postów: 288
Pomógł: 12
Dołączył: 2.12.2005

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


za dużo kombinujesz.

  1. <?php
  2. function pokazkategorie($kategoria = 0, $lev = 0)
  3. {
  4. $sql = mysql_query("SELECT * FROM kategorie WHERE parent = $kategoria");
  5. while($row = @mysql_fetch_array($sql))
  6. {
  7. pokazkategorie($row['id'], ++$lev);
  8. }
  9. }
  10. pokazkategorie();
  11. ?>


Coś w tym stylu, w pętli while jeszcze dajesz wyświetlanie, $lev pomoże ci w robieniu poziomów, podpoziomów, etc.

Ten post edytował tommy4 9.10.2007, 19:49:17
Go to the top of the page
+Quote Post

Posty w temacie


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: 27.12.2025 - 10:20