Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Wyświetlenie BD w postaci listy <lu> ?
maverickkk
post 17.09.2007, 11:10:33
Post #1





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 12.11.2005

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


Moja baza wygląda tak:
http://217.97.144.147/~i4659/up/upload/bd.jpg

Lista jaką chciałbym utworzyć na podstawie tej tabeli powinna wyglądać mniej wiecej tak:

  1. <ul>
  2. <li>KATEGORIA
  3. <ul>
  4. <li>POD-KATEGORIA
  5. <ul>
  6. <li>nazwa produktu</li>
  7. <li>nazwa produktu</li>
  8. </ul>
  9. </li>
  10. <li>POD-KATEGORIA
  11. <ul>
  12. <li>nazwa produktu</li>
  13. <li>nazwa produktu</li>
  14. </ul>
  15. </li>
  16. </ul>
  17. </li>
  18. </ul>


I teraz do utworzenia takiej listy trzeba zrobić wiele warunków if które będą otwierać zamykać tagi HTML wstawiac zawartość, sprawdzać do której kategori/podkategorii należy produkt itd.

Czy da się to zrobić w jakiś prosty spoosób?

Ten post edytował maverickkk 17.09.2007, 11:11:27


--------------------
Robie to co lubie, lubie to co Robie
Go to the top of the page
+Quote Post
Cezar708
post 17.09.2007, 11:29:33
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


idealnym rozwiązaniem byłoby u Ciebie zastosowanie rekurencji

na przykład:

  1. <?php
  2. function pobierzDane($level){
  3. // tu skąd dane są pobierane (baza danych?)
  4. }
  5.  
  6. function pobierzListę($level = 1){
  7. $dane = pobierzDane($level);
  8. $strRet .= "<ul>".$dane['nazwaLevelu'];
  9.  
  10. foreach ( $dane['liTegoLevelu'] as $li ){
  11. $strRet .= "<li>{$li['nazwaLi']}</li>";
  12. if ( $li['maPodLevel'] ){
  13. $strRet .= pobierzListę($level + 1)
  14. }
  15. }
  16. $strRet .= "</ul>";
  17. return $strRet;
  18. }
  19.  
  20. $lista = pobierzListę($level = 1);
  21. ?>


oczywiście to jest przykład...
Go to the top of the page
+Quote Post
maverickkk
post 20.09.2007, 17:17:39
Post #3





Grupa: Zarejestrowani
Postów: 181
Pomógł: 0
Dołączył: 12.11.2005

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


Dzieki. Dobry pomysł.

Ja jednak zrobiłem to na 3 funkcjach z których każda obsługuje 1 level ponieważ mam liste do 3 rzędu. Każda z funckji korzysta z innej tabelki a tabele różnią się polami i nie chciałem się bawić w rekurencje.

Innym razem ją wykorzystam :]


--------------------
Robie to co lubie, lubie to co Robie
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 Wersja Lo-Fi Aktualny czas: 10.07.2025 - 06:33