Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Wyświetlanie rekordów z bazy danych
pafeu
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 9.10.2011

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


baza
  1. cat_id parent_id left_id right_id level cat_name
  2. 1 -1 1 74 -1 ALL
  3. 214 1 22 73 0 KATEGORIA1
  4. 223 214 23 72 1 1PODKAT1
  5. 215 1 20 21 0 KATEGORIA2
  6. 216 1 15 24 0 KATEGORIA3
  7. 223 216 18 19 1 3PODKAT1
  8. 223 216 12 17 1 3PODKAT1

kodem
  1. $query = "SELECT * FROM " . $DBPrefix . "categories WHERE level = 1 ";
  2. $res = mysql_query($query);
  3.  
  4. while ($row = mysql_fetch_assoc($res))
  5. {
  6. $template->assign_block_vars('cat_list', array(
  7. 'ID' => $row['cat_id'],
  8. 'KATEGORIE' => $category_names[$row['parent_id']],
  9. 'PODKATEGORIE' => $category_names[$row['cat_id']]
  10. ));
  11. }

pobieram kategorie i podkategorie ale mam problem
nie wyświetlają mi się kategorie, które nie mają podkategorii
a kategorie które mają kilka podkategorii wyświetlają się kilka razy
wygląda to tak:

- KATEGORIA1, 1PODKAT1
- TU POWINNA BYĆ KATEGORIA BEZ PODKATEGORII
- KATEGORIA3, 3PODKAT1
- KATEGORIA3, 3PODKAT2
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kod co tu pokazales pobiera tylko i wyłącznie podkategorie. Widac, nie pokazales wszystkiego.

Nie mniej jednak, powinienies grupowac wpierw dane w php, a dopiero potem je wyswietlac. Tutaj pokazalem jak to sie robi:
http://nospor.pl/grupowanie-wynikow.html
Go to the top of the page
+Quote Post
pafeu
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 9.10.2011

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


pokazałem cały kod
w bazie jest
  1. cat_id parent_id level cat_name
  2. 1 -1 -1 ALL
  3. 214 1 0 KATEGORIA1
  4. 223 214 1 1PODKAT1
  5. 215 1 0 KATEGORIA2
  6. 216 1 0 KATEGORIA3
  7. 223 216 1 3PODKAT1
  8. 223 216 1 3PODKAT1

level 0 to kategorie
level 1 to podkategorie
cat_id wskazuje na kategorie
parent_id wskazuje na podkategorie
jeżeli parent_id jest takie samo jak cat_id to znaczy, że jest to podkategoria
i to jest ok
problem jest inny
nie wyświetlają mi się kategorie, które nie mają podkategorii
a kategorie które mają kilka podkategorii wyświetlają się kilka razy
wygląda to tak:

- KATEGORIA1, 1PODKAT1
- TU POWINNA BYĆ KATEGORIA2 BEZ PODKATEGORII
- KATEGORIA3, 3PODKAT1
- KATEGORIA3, 3PODKAT2

Ten post edytował pafeu 24.03.2014, 20:22:44
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jak juz mowilem:
WHERE level = 1
ten o to warunek pobiera ci tylko i wyłącznie podkategorie. Z tego kodu co pokazales nie ma szans pobrac nazwa KATEGORII dla tych PODKATEGORII. Byc moze w szablonie cos jeszcze robisz. Nie wiem, jak juz mowilem, nie pokazales wszystkiego.

Skoro wiec tym warunkiem: WHERE level = 1 pobierasz tylko PODKATEGORIE, to nie spodziewaj się, że zapytanie zwroci ci KATEGORIE bez PODKATEGORII.
Powinienies pobierac KATEGORIE GLOWNE i dla nich szukac PODKATEGORII a nie odwrotnie.

Zas co do powtarzarzania danych to juz ci w pierwszym poscie podalem linka do arta, jak to sie prawidlowo robi.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 16:04