Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]zapytanie, drzewo
-Gość-
post
Post #1





Goście







Witam

Mam w bazie danych liste kategorii i subkategorii. Chcialbym pobrac wszystko za pomoca jednego zapytania posortowane w odpowiedni sposob.

w bazie wyglada to tak:

  1. id parent_id name
  2. 1 null papier
  3. 2 null folia
  4. 3 null filc
  5. 4 1 gruby
  6. 5 2 zwykła
  7. 6 2 bąbelkowa
  8. 7 1 cieńki
  9. 8 1 samoprzylepny
  10. 9 3 200g
  11. 10 1 teksturowany


czyli powinno zostac posortowane w ten sposob
  1. papier
  2. cieńki
  3. gruby
  4. samoprzylepny
  5. teksturowany
  6. filc
  7. 200g
  8. folia
  9. zwykła
  10. bąbelkowa


Moglbym na poczatek pobrac wszystkie elementy w ktorych parent==null, pozniej przejechac je po kolei i popobierac ich dzieci. Ale moze da sie jakos bardziej w SQL, mniej w PHP?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
-Gosc134-
post
Post #2





Goście







Witam,

Ostatnie pytanie mam kod:

  1. <?php
  2. $c = mysql_query('SELECT * FROM `kat` ORDER BY `parents` ') or die(mysql_error());
  3.  
  4. $tree = array();
  5. while ($row = mysql_fetch_assoc($c))
  6. {
  7. if (!$row['parents'])
  8. {
  9. $tree[$row['id']] = $row;
  10. }
  11. else
  12. {
  13. if (!isset($tree[$row['parents']]['children']))
  14. {
  15. $tree[$row['parents']]['children'] = array();
  16. }
  17.  
  18. $tree[$row['parents']]['children'][] = $row;
  19.  
  20. }
  21. }
  22. foreach($tree as $v)
  23. {
  24. echo $v['title'].'<br/>';
  25. foreach($v['children'] as $v)
  26.  
  27. { echo'--'.$v['title'].'<br>';}
  28.  
  29. }
  30. ?>


I On wyświetla coś takiego:

Cytat
Oświata

Warning: Invalid argument supplied for foreach() in /kat.php on line 48
Medycyna
--Lekarze
Sklepy

Warning: Invalid argument supplied for foreach() in /kat.php on line 48


Jak zrobić by wyświetlało się poprawnie i z id danego elementu czyli np.:

Cytat
1|Oświata
2|Medycyna
--4|Lekarze
3|Sklepy


Bardzo dziękuję za pomoc bo walczę z tym od wczoraj :-/
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: 5.10.2025 - 17:45