Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak to rozwiazac ?
Sh4dow
post
Post #1





Grupa: Zarejestrowani
Postów: 569
Pomógł: 0
Dołączył: 17.08.2003
Skąd: Dąbrowa Górnicza

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


Mam problem, nie wiem jak podjesc do problemu, zrobienia drzewa kategorii, ktore sa wpisane w bazie.
nr_kategoria = to to kolejne identyfikatory kategorii
tytyl = tytuł
root_karegorii = jest to przynaleznosc kategorii, jesli jest rowna 0 to znaczy ze jest w glownej kategoii, jezeli posiada jakas cyfre to znaczy ze jest to podkategoria kategorii o numerze podanym z tej kolumnie. Pozwala to na robienie dowolnej liczby pod kategorii.

Przykladowa tabela wyglada tak:

Kod
+--------------+-------+----------------+
| nr_kategoria | tytul | root_kategorii |
+--------------+-------+----------------+
| 1            | cos1  | 0              |
| 2            | cos2  | 0              |
| 3            | cos3  | 1              |
| 4            | cos4  | 1              |
| 5            | cos5  | 2              |
| 6            | cos6  | 5              |
+--------------+-------+----------------+


teraz chcialbym zeby bylo mozliwe wyswietlenie tego mniej wiecej tak


Kod
lista kategorii:

> cos1
    cos3
    cos4
> cos2
    cos5
      cos6


czy ktos rozumie co mam na mysli ? Jesli tak to moze ktos ma pomysl jak to rozwiazac ?


--------------------
Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota
Zarządzaj swoim budżetem domowym
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
adwol
post
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Mam problem, nie wiem jak podjesc do problemu, zrobienia drzewa kategorii, ktore sa wpisane w bazie.

czy ktos rozumie co mam na mysli ? Jesli tak to moze ktos ma pomysl jak to rozwiazac ?

[php:1:2d42c96874]<?php
function list_kat($n, $level)
{
$res = mysql_query("select * from tabela where root_kategorii='$n'");
while ($row = mysql_fetch_array($res))
{
print str_repeat(' ', $level) . $row['tytul'] . "n";
list_kat($row['nr_kategoria'], $level + 1);
}
}

list_kat(0, 0);
?>[/php:1:2d42c96874]
Może ciut nieefektywne, ale jak poindeksujesz sobie tą tabele to nie powinno być tak źle. :wink:

Polecam też stronę depesza. Tam są opisane różne metody trzymania drzew w sqlu.
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: 21.08.2025 - 11:17