Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]poziome menu
Forum PHP.pl > Forum > Przedszkole
ghastblood
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.
amii
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>';

ghastblood
taka metoda wynikiem bedzie

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


a podmenu ?
mortus
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.
Kshyhoo
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. ?>
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.