Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Generowanie menu z tablicy
Forum PHP.pl > Forum > Przedszkole
northwest
Witam serdecznie,
mam taki kod:
  1. $tablica2 = $ms->query_select("SELECT z bazy;");
  2. echo "<pre>";
  3. print_r ($tablica2);
  4. echo "</pre>";


który zwraca mi następujący wynik:
  1. (
  2. [0] => Array
  3. (
  4. [nazwa_kategori] => Kategoria 1
  5. [id_kategori] => 1
  6. [nazwa_podkategori] => Podkategoria 2
  7. [id_podkategori] => 2
  8. [nazwa_podpodkategori] => Podpodkategoria 3
  9. [id_podpodkategori] => 3
  10. )
  11.  
  12. [1] => Array
  13. (
  14. [nazwa_kategori] => Kategoria 1
  15. [id_kategori] => 1
  16. [nazwa_podkategori] => Podkategoria 3
  17. [id_podkategori] => 3
  18. [nazwa_podpodkategori] => Podpodkategoria 3
  19. [id_podpodkategori] => 3
  20. )
  21.  
  22. [2] => Array
  23. (
  24. [nazwa_kategori] => Kategoria 1
  25. [id_kategori] => 1
  26. [nazwa_podkategori] => Podkategoria 3
  27. [id_podkategori] => 3
  28. [nazwa_podpodkategori] => Podpodkategoria 3
  29. [id_podpodkategori] => 3
  30. )
  31.  
  32. [3] => Array
  33. (
  34. [nazwa_kategori] => Kategoria 1
  35. [id_kategori] => 1
  36. [nazwa_podkategori] => Podkategoria 2
  37. [id_podkategori] => 2
  38. [nazwa_podpodkategori] => Podpodkategoria 3
  39. [id_podpodkategori] => 3
  40. )
  41.  
  42. [4] => Array
  43. (
  44. [nazwa_kategori] => Kategoria 2
  45. [id_kategori] => 2
  46. [nazwa_podkategori] => Podkategoria 1
  47. [id_podkategori] => 1
  48. [nazwa_podpodkategori] => Podpodkategoria 1
  49. [id_podpodkategori] => 1
  50. )
  51.  
  52. [5] => Array
  53. (
  54. [nazwa_kategori] => Kategoria 2
  55. [id_kategori] => 2
  56. [nazwa_podkategori] => Podkategoria 1
  57. [id_podkategori] => 1
  58. [nazwa_podpodkategori] => Podpodkategoria 1
  59. [id_podpodkategori] => 1
  60. )
  61.  
  62. )


chciałbym zbudować w oparciu o te dane coś takiego (takie menu):
- [id_kategori] - [nazwa_kategori]
- [id_podkategori] - [nazwa_podkategori]
- [id_podkategori] - [nazwa_podkategori]
- [id_podpodkategori] - [nazwa_podpodkategori]
- [id_podkategori] - [nazwa_podkategori]
- [id_podpodkategori] - [nazwa_podpodkategori]
- [id_podpodkategori] - [nazwa_podpodkategori]
- [id_podpodkategori] - [nazwa_podpodkategori]
- [id_kategori] - [nazwa_kategori]
- [id_kategori] - [nazwa_kategori]
....
....


Czyli chciałbym przefiltrować całą tablicę pod kontem duplikatów i potem zbudować menu na tej podstawie...
Wie ktoś może jak to zrobić najlepiej?

Z góry dziękuje za pomoc,
northwest
lukaskolista
Filtrowanie pod wzgledem duplikatow
  1. $i = 0;
  2. while (isset($menu[$i])) {
  3. $j = 0;
  4. while (isset($menu[$j])) {
  5. if ($menu[$i]['nazwa_kategorii'] === $menu[$j]['nazwa_kategorii']) {
  6. unset($menu[$j]);
  7. }
  8. ++$j;
  9. }
  10. ++$i;
  11. }


Wyswietlanie
  1. $i = 0;
  2. while (isset($menu[$i])) {
  3. echo $menu[$i]['nazwa_kategori'].'<br />';
  4. ++$i;
  5. }


Edit:
cos moze byc zle bo dzisiaj wyjatkowo zle mi sie mysli, ale sposob jest dobry
mat-bi
a array_unique to już pies?
northwest
kurcze,nie działa to sad.gif

Mam takie coś:
  1. (
  2. [0] => Array
  3. (
  4. [nazwa_kategori] => Kategoria 1
  5. [id_kategori] => 1
  6. [nazwa_podkategori] => Podkategoria 2
  7. [id_podkategori] => 2
  8. [nazwa_podpodkategori] => Podpodkategoria 3
  9. [id_podpodkategori] => 3
  10. )
  11.  
  12. [1] => Array
  13. (
  14. [nazwa_kategori] => Kategoria 1
  15. [id_kategori] => 1
  16. [nazwa_podkategori] => Podkategoria 3
  17. [id_podkategori] => 3
  18. [nazwa_podpodkategori] => Podpodkategoria 3
  19. [id_podpodkategori] => 3
  20. )
  21.  
  22. [2] => Array
  23. (
  24. [nazwa_kategori] => Kategoria 1
  25. [id_kategori] => 1
  26. [nazwa_podkategori] => Podkategoria 3
  27. [id_podkategori] => 3
  28. [nazwa_podpodkategori] => Podpodkategoria 3
  29. [id_podpodkategori] => 3
  30. )
  31.  
  32. [3] => Array
  33. (
  34. [nazwa_kategori] => Kategoria 1
  35. [id_kategori] => 1
  36. [nazwa_podkategori] => Podkategoria 2
  37. [id_podkategori] => 2
  38. [nazwa_podpodkategori] => Podpodkategoria 3
  39. [id_podpodkategori] => 3
  40. )
  41.  
  42. [4] => Array
  43. (
  44. [nazwa_kategori] => Kategoria 2
  45. [id_kategori] => 2
  46. [nazwa_podkategori] => Podkategoria 1
  47. [id_podkategori] => 1
  48. [nazwa_podpodkategori] => Podpodkategoria 1
  49. [id_podpodkategori] => 1
  50. )
  51.  
  52. [5] => Array
  53. (
  54. [nazwa_kategori] => Kategoria 2
  55. [id_kategori] => 2
  56. [nazwa_podkategori] => Podkategoria 1
  57. [id_podkategori] => 1
  58. [nazwa_podpodkategori] => Podpodkategoria 1
  59. [id_podpodkategori] => 1
  60. )
  61.  
  62. )



i chciałbym taki efekt osiągnąć:

Kategoria 1
-- Podkategoria 2
----Podpodkategoria 3
-- Podkategoria 3
----Podpodkategoria 3
Kategoria 2
-- Podkategoria 1


próbowałem różnie, ale zawsze wywala mi się na podpodkategoriach :/
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.