Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS][MYSQL] pozycje menu pobierane z bazy danych
Forum PHP.pl > Forum > Przedszkole
rivanel
Witam,
zrodziła mi się taka kwestia: menu w css, czy da się zrobić menu które wartości pobierałoby z bazy danych? (z jednym poziomem submenu)
Kod
           id|pozycja |id_rodzica| nazwa | odnosnik
           -----------------------------------------
           1 |    1   | 2        |bla    | www....

etc.
gdzie
pozycja (kolejność od góry menu)
id_rodzica (0 dla niezagnieżdżonego, każde inne odnosi się jako submenu id pozycji leżącej na poziomie zagnieżdżenia 0 )
tak to sobie wyobrażam w teorii, ale jak wygenerować ciąg ul li odpowiadający pozycjom menu??
jakieś pomysły, sugestie, rozwiązania?
Pozdrawiam
Michał
kazag
  1. <?php
  2. echo "Menu<br/>";
  3. $sql=mysql_query("select * from menu where id_rodzica=0 order by pozycja");
  4.  
  5. while($row=mysql_fetch_assoc($sql))
  6. {
  7. //wyswietlasz pozycje
  8. echo "pozycja o nazwie:".$row['nazwa'];
  9.  
  10. //pobierasz jej dzieci
  11. $sql2=mysql_query("select * from menu where id_rodzica='$row['id']' order by pozycja");
  12.  
  13. //wyswietlasz dzieci
  14. while($row2=mysql_fetch_assoc($sql2))
  15. {
  16. echo "dziecko pozycji o nazwie:".$row2['nazwa'];
  17. }
  18. }
  19. ?>


z palca, działa?
rivanel
hmm, próbowałem ale dalej nie moge dojsc...
syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/users/zzppm/public_html/nowyprojekt/menu.php on line 23
to się odnosi do tego:
Kod
$sql2=mysql_query("select * from menu where id_rodzica='$row['id']' order by pozycja");

nie powinno być jakiegoś ifa?? if id_rodzica rozne od 0 to wtedy wyswietla.. odwolanie do id jest jakby nieużyteczne, całość opiera się na pozycji pod warunkiem ze id_rodzica=0 w innym wypadku pozycja mowi o pozycji w submenu...

muszę w końcu od zera zacząć się uczyć phpa bo to wszystko jest zabójczo logiczne tylko nie wiem jak to obrócić w słowa...
Lion_87
Co do tego błedu to nie ' a " powinny być i dwie kropeczki

  1. <?php
  2. $sql2=mysql_query("select * from menu where id_rodzica=".$row['id']." order by pozycja");
  3. ?>
rivanel
Parse error: syntax error, unexpected $end in /home/users/zzppm/public_html/nowyprojekt/menu.php on line 33
czyli linia zaraz za /html
megawebmaster
Gdzieś brakuje klamry zamykającej.
Teraz optymalizacyjne informacje - lepiej jest pobrać całe menu, ew. pewną ilość oczywiście idąc po menu głównych. No i dopiero w PHP je obrabiać, czyli np. utworzyć tablicę. No i ostatecznie - ten problem był wielokrotnie rozważany:
http://dev.mysql.com/tech-resources/articl...hical-data.html - nested sets
http://diabl0.gazeta.ie/2009/03/drzewo-depesza-w-mysql/ - drzewo Depesza
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.