Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]poziome menu
ghastblood
post
Post #1





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


Witam,
stworzyłem sobie w html wielopoziomowe poziome menu wszystko działa pięknie. Chciałem dodać do tego bazy danych.

Stworzyłem sobie baze danych

link_id
link_nazwa
link_url
link_parent

menu poziome wygląda tak

  1. <ul>
  2. <li>menu 1.0</li>
  3. <ul>
  4. <li>menu 1.1</li>
  5. </ul>
  6. <li>menu 2.0</li>
  7. </ul>


zastanawia mnie teraz jaka metoda pobrać dane z bazy danych i jak wyświetlać to w odpowiedniej formie do kodu. Jakaś pętla czy może jakoś inaczej.
Go to the top of the page
+Quote Post
amii
post
Post #2





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Np. tak:

  1. //connect to database
  2.  
  3. $result = mysql_query("SELECT * FROM tabela");
  4.  
  5. echo 'ul';
  6. while($row = mysql_fetch_array($result)) {
  7. echo '<li>'.$row['link_nazwa'].'</li>';
  8. }
  9. echo '</ul>';



--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
ghastblood
post
Post #3





Grupa: Zarejestrowani
Postów: 360
Pomógł: 12
Dołączył: 17.09.2009
Skąd: Warszawa

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


taka metoda wynikiem bedzie

  1. <ul>
  2. <li>link_nazwa</li>
  3. </ul>


a podmenu ?
Go to the top of the page
+Quote Post
mortus
post
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Poczytaj o drzewach kategorii. Twój problem można rozwiązać na kilka sposobów. Jeśli nie będzie to jakieś skomplikowane menu, to wystarczy funkcja rekurencyjna (jest to najmniej wydajne rozwiązanie) . Jeśli menu będzie bardziej rozbudowane, to trzeba będzie przemyśleć kwestię z np. drzewem ip.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #5





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Załaduj toto do tablicy, a potem już z górki:
  1. <?php
  2. $k['Kategoria 1']['Podkategoria 1']=1;
  3. $k['Kategoria 1']['Podkategoria 2']=1;
  4. $k['Kategoria 1']['Podkategoria 3']=1;
  5. $k['Kategoria 1']['Podkategoria 4']=1;
  6. $k['Kategoria 1']['Podkategoria 5']=1;
  7. $k['Kategoria 2']['Podkategoria 1']=1;
  8. $k['Kategoria 2']['Podkategoria 2']=1;
  9. $k['Kategoria 2']['Podkategoria 3']['Podkategoria Podkategorii 1']=1;
  10. $k['Kategoria 2']['Podkategoria 4']['Podkategoria Podkategorii 2']['Podkategoria Podkategorii Podkategorii 1']=1;
  11. $k['Kategoria 2']['Podkategoria 5']['Podkategoria Podkategorii 3']['Podkategoria Podkategorii Podkategorii 1']=1;
  12. $k['Kategoria 2']['Podkategoria 6']['Podkategoria Podkategorii 4']=1;
  13. $k['Kategoria 2']['Podkategoria 7']['Podkategoria Podkategorii 5']=1;
  14. $k['Kategoria 2']['Podkategoria 8']['Podkategoria Podkategorii 6']=1;
  15. $k['Kategoria 2']['Podkategoria 9']['Podkategoria Podkategorii 7']=1;
  16. $k['Kategoria 3']['Podkategoria 1']=1;
  17. $k['Kategoria 3']['Podkategoria 2']=1;
  18. $k['Kategoria 3']['Podkategoria 3']=1;
  19.  
  20. setlocale(LC_COLLATE, "pl_PL", "Polish_Poland.28592", "pl", "pol", "polish");
  21. $kt = preg_split("/;/", $_GET['q'], -1, PREG_SPLIT_NO_EMPTY);
  22. drzewo($k);
  23. function drzewo($tablica, $p=0, $ciag='') {
  24. global $kt;
  25. echo "<div style='margin-left:10px;'><ul>";
  26. ksort($tablica, SORT_LOCALE_STRING);
  27. foreach(array_keys($tablica) as $t) {
  28. $c = $ciag . str_replace(' ', '+', str_replace('+', '%2B',$t)).";";
  29. $bold = ($t==$kt[$p])?"style='font-weight:bold; color:red;'":"";
  30. echo "<li><a href='{$_SERVER["PHP_SELF"]}?q=$c' $bold>$t</a></li>";
  31. if ($t==$kt[$p] and is_array($tablica[$t])) drzewo($tablica[$t], ++$p, $c);
  32. }
  33. echo "</ul></div>";
  34. }
  35. ?>


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 08:35