Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 15.08.2007 Ostrzeżenie: (0%)
|
Witam,
zacznę od danych: Posiadam trzy tabele (w poniższym przykładzie table i ich struktura są fikcyjne, ale dobrze obrazują o co mi chodzi) news ID - identyfikator contents - treść aktualności photos photoID - identyfikator newsID - ID newsa, do którego odnosi się zdjęcie path - ścieżka do obrazu comments commentID - identyfikator newsID - ID newsa, do którego odnosi się komentarz author - autor komentarza contents - treść komentarza Jeden news może posiadać dowolną ilość zarówno zdjęć jak i komentarzy, czyli mamy podwójną relację jeden-do-wielu. Teraz chciałbym otrzymać taki wynik zapytania: Kod Array ( [0] => Array ( [ID] => 1 [contents] => ... [photos] => Array ( [0] => ... [1] => ... ) [comments] => Array ( [0] => Array ( [author] => ... [contents] => ... ) [1] => Array ( [author] => ... [contents] => ... ) [2] => Array ( [author] => ... [contents] => ... ) ) ) [1] => Array ( [ID] => 2 [contents] => ... [photos] => Array ( [0] => ... [1] => ... ) [comments] => Array ( [0] => Array ( [author] => ... [contents] => ... ) [1] => Array ( [author] => ... [contents] => ... ) [2] => Array ( [author] => ... [contents] => ... ) ) ) [2] => Array ( [ID] => 4 [contents] => ... [photos] => Array ( [0] => ... [1] => ... ) [comments] => Array ( [0] => Array ( [author] => ... [contents] => ... ) [1] => Array ( [author] => ... [contents] => ... ) [2] => Array ( [author] => ... [contents] => ... ) ) ) ) Ewentualnie zdjęcia również mogą być jako tablice (z jednym indeksem). Powyższą tablicę mógłbym otrzymać wykonując trzy zapytania i tworząc w pętli ostateczną formę:
Ale zastanawiam się (właściwie z czystej ciekawości) czy istnieje możliwość wykonania tego inaczej (czyt.: wydajniej). Chociaż te dane ($result) i tak będą cacheowane. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam Ten post edytował Adam Nowak 28.08.2008, 14:02:58 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%)
|
Możesz w jednym zapytaniu uzyć dwukrotnie JOIN, ale tablicę i tak będziesz musiał zrobić w pętli. Zysk jest taki, że masz jedno zapytanie i jedną pętlę.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 15.08.2007 Ostrzeżenie: (0%)
|
Rozwiązanie z podwójnym JOINem będzie chyba nieco mniej wydajne - czyż nie?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%)
|
Wydaje mi się, ze nie.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 00:13 |