Witam.
Nie mam pomysłu na to jak przetworzyć dane uzyskane z bazy danych. Są to komentarze (id_komentarza
, id_rodzica
, autor
, komentarz
) z zagnieżdżeniem do dowolnego poziomu (coś ala Disqus). Zapytaniem:
SELECT
k1.id_komentarza, k1.id_rodzica, k1.autor, k1.komentarz,
k2.id_komentarza as id_komentarza1, k2.id_rodzica as id_rodzica1, k2.autor as autor1, k2.komentarz as komentarz1
FROM Komentarze AS k1 LEFT OUTER JOIN Komentarze AS k2 ON k2.id_rodzica = k1.id_komentarza
uzyskałem przykładowe komentarze:
array (size=9)
0 =>
array (size=8)
'id_komentarza' => string '1' (length=1)
'id_rodzica' => null
'autor' => string 'Frania' (length=6)
'komentarz' => string 'Co doprowadziło do tego błędu?' (length=33)
'id_komentarza1' => string '2' (length=1)
'id_rodzica1' => string '1' (length=1)
'autor1' => string 'Ola' (length=3)
'komentarz1' => string 'Myślę, że chodzi o pusty wskaźnik' (length=37)
1 =>
array (size=8)
'id_komentarza' => string '2' (length=1)
'id_rodzica' => string '1' (length=1)
'autor' => string 'Ola' (length=3)
'komentarz' => string 'Myślę, że chodzi o pusty wskaźnik' (length=37)
'id_komentarza1' => string '3' (length=1)
'id_rodzica1' => string '2' (length=1)
'autor1' => string 'Frania' (length=6)
'komentarz1' => string 'Nie, sprawdziłam to.' (length=21)
2 =>
array (size=8)
'id_komentarza' => string '1' (length=1)
'id_rodzica' => null
'autor' => string 'Frania' (length=6)
'komentarz' => string 'Co doprowadziło do tego błędu?' (length=33)
'id_komentarza1' => string '4' (length=1)
'id_rodzica1' => string '1' (length=1)
'autor1' => string 'Kasia' (length=5)
'komentarz1' => string 'Musimy sprawdzić...' (length=20)
3 =>
array (size=8)
'id_komentarza' => string '4' (length=1)
'id_rodzica' => string '1' (length=1)
'autor' => string 'Kasia' (length=5)
'komentarz' => string 'Musimy sprawdzić...' (length=20)
'id_komentarza1' => string '5' (length=1)
'id_rodzica1' => string '4' (length=1)
'autor1' => string 'Ola' (length=3)
'komentarz1' => string 'Tak, tam jest błąd.' (length=21)
4 =>
array (size=8)
'id_komentarza' => string '4' (length=1)
'id_rodzica' => string '1' (length=1)
'autor' => string 'Kasia' (length=5)
'komentarz' => string 'Musimy sprawdzić...' (length=20)
'id_komentarza1' => string '6' (length=1)
'id_rodzica1' => string '4' (length=1)
'autor1' => string 'Frania' (length=6)
'komentarz1' => string 'Rzeczywiście, dopisz kod sprawdzający!' (length=40)
5 =>
array (size=8)
'id_komentarza' => string '6' (length=1)
'id_rodzica' => string '4' (length=1)
'autor' => string 'Frania' (length=6)
'komentarz' => string 'Rzeczywiście, dopisz kod sprawdzający!' (length=40)
'id_komentarza1' => string '7' (length=1)
'id_rodzica1' => string '6' (length=1)
'autor1' => string 'Kasia' (length=5)
'komentarz1' => string 'Pomogło.' (length=9)
6 =>
array (size=8)
'id_komentarza' => string '3' (length=1)
'id_rodzica' => string '2' (length=1)
'autor' => string 'Frania' (length=6)
'komentarz' => string 'Nie, sprawdziłam to.' (length=21)
'id_komentarza1' => null
'id_rodzica1' => null
'autor1' => null
'komentarz1' => null
7 =>
array (size=8)
'id_komentarza' => string '5' (length=1)
'id_rodzica' => string '4' (length=1)
'autor' => string 'Ola' (length=3)
'komentarz' => string 'Tak, tam jest błąd.' (length=21)
'id_komentarza1' => null
'id_rodzica1' => null
'autor1' => null
'komentarz1' => null
8 =>
array (size=8)
'id_komentarza' => string '7' (length=1)
'id_rodzica' => string '6' (length=1)
'autor' => string 'Kasia' (length=5)
'komentarz' => string 'Pomogło.' (length=9)
'id_komentarza1' => null
'id_rodzica1' => null
'autor1' => null
'komentarz1' => null
Możecie próbować pisać inne zapytania SQL, ale gwarantuję wam, że zawsze uzyskacie możliwość zagnieżdżania komentarzy do określonego poziomu. Dlatego pytam o pomysł jak to co wyłuskałem, wyświetlić w strukturze drzewa w PHP? :)
Pozdrawiam, Webowiec