Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]kategorie i podkategorie, wyświetlanie...
hejkumkejkum
post
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.11.2007

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


Mam pewną zagwozdkę, chcę zrobić coś takiego

Kategoria gł1
podkategoriaA
1.publikacja (link Word lub pdf) wielkość pliku, data
2 publikacja (link Word lub pdf) wielkość pliku, data
| LINK wyświetl całą zawartość podkategoriiA. |
podkategoriaB
1.publikacja (link Word lub pdf) wielkość pliku, data
2 publikacja (link Word lub pdf) wielkość pliku, data
3 publikacja (link Word lub pdf) wielkość pliku, data
4 publikacja (link Word lub pdf) wielkość pliku, data
5 publikacja (link Word lub pdf) wielkość pliku, data
| LINK wyświetl całą zawartość podkategoriiB. |
Kategoria gł2
1.publikacja (link Word lub pdf) wielkość pliku, data
2 publikacja (link Word lub pdf) wielkość pliku, data
| LINK wyświetl całą zawartość kategorii gł2. |

A więc chodzi o to, że chcę na stronie umieścić pliki do pobrania, przy czym chcę aby od razu były widoczne i kategorie główne, które mogą zawierać odnośniki do plików(publikacji) jak i podkategorie, oraz powiedzmy widocznych 5 najnowszych publikacji, a pod spodem link do reszty publikacji z danej kategorii/podkategorii po kliknięciu którego przechodzi się do całego spisu publikacji z danej kategorii.

Czyli zdaje się dwie tabele (lub trzy), jedna tabela przechowuje dane dotyczące plików, druga tabela przetrzymuje kategorie i podkategorie, ewentualnie osobno tabela z kategoriami i podkategoriami(?).

Czy dobrze kombinuję?

W PHP jestem laikiem staram się coś nauczyć lecz ja muszę stopniowo rozgryzać koncepcję, a wiele przykładów jest od razu z grubej rury, które są na tyle skomplikowane, że logicznie nie potrafię ich rozpracować i jednocześnie poznać zasad działania.

Głownie mam niejasność co do tabeli kategorii i podkategorii, czy to ma być w jednej tabeli czy ma to być jednak rozbite na dwie tabele? Bo za chiny ludowe nie wiem jak to można wyświetlic mając

mysql> select * from category;
+----+----------+-------------+
| id | deep | name |
+----+------+-----------------+
| 1 | 0 | kategoria gł1 |
| 2 | 0 | kategoria gł2 |
| 3 | 0 | kategoria gł3 |
| 4 | 1 | podkategoriaA |
| 5 | 1 | podkategoriaB |
+----+------+-----------------+

W takiej sytuacji nie wiem jak podpiąć podkategorie do kategorii głównych, to chyba bardziej się nadaje do metody wyświetlania która w danym momencie wyświetla tylko kategorie lub podkategorie w zależnosci od deep.

Czy dobrze to rozumiem czy całkowicie poplątałem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
hejkumkejkum
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 11.11.2007

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


Znalazłem taki temat:
http://forum.php.pl/index.php?showtopic=89...mp;hl=kategorie

Chodzi mi głównie o to, że nie wiem kompletnie jak wyświetlić strukturę tabeli mając tak jak autor powyższego tematu podoobną budowe tabeli kategorii/podkategorii:

Tabela category:

| ID | NAZWA KATEGORI | PODKATEGORIA |
-------------------------------------------------
| 1 | Kategoria 1 | 0 |
| 2 | Kategoria 2 | 0 |
| 3 | Kategoria 3 | 0 |
| 4 | Podkategoria A | 2 |
| 5 | Podkategoria B | 2 |
| 6 | Podkategoria C | 3 |
-------------------------------------------------


W jaki sposób to wyświetlić, męczę się od kilku dni ale już mnie flustracja dopada i powoli się poddaję.
  1. <?php
  2. $sql = mysql_query(&#092;"SELECT * FROM category\")
  3.  or die ('Wystąpił błąd: '.mysql_error() );
  4. while($row=mysql_fetch_array($sql))
  5. {
  6. echo $row['name'];
  7.  }
  8. ?>

W powyższym wylistowanie kategorii i podkategorii będzie wyglądać tak:

# kategoria główna 1
# kategoria główna 2
# kategoria główna 3
# podkategoria A
# podkategoria B
# Podkategoria C


A powinno wyglądać tak:

# kategoria główna 1
# kategoria główna 2
# podkategoria A
# podkategoria B
# kategoria główna 3
# Podkategoria C


Nie wiem jak to ruszyć dalej HELP (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) .

Chyba sobie poradziłem.

  1. <?php
  2. $query = mysql_query(&#092;"SELECT * FROM category WHERE Subcat='0' ORDER BY id ASC\");
  3. while ($result = mysql_fetch_row($query)) {
  4. echo $category = &#092;"<a href="$result[0]">$result[3]</a href='$result[0]'>\"; 
  5. $subQuery = mysql_query(&#092;"SELECT * FROM category WHERE Subcat='\".$result['0'].\"' ORDER BY id ASC\");
  6. while ($subResult = mysql_fetch_array($subQuery)) 
  7. {
  8. echo $category = '<li>--'.$subResult[3] . ' ' ;
  9. }
  10. }
  11. ?>


Jak takie rozwiązanie ma się do wydajności i obciążenia bazy danych?
Samych kategorii i podkategorii wiele nie będzie ale plikków zdaje się około 300-400.

Ten post edytował hejkumkejkum 21.05.2008, 16:39:00
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 02:28