![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
załóżmy że mam dwie tabelki: ZDJĘCIA - id - nazwa - opis - autor EFEKTY - id - id_zdjecia - efekt I chciałbym wyświetlić jedno zdjęcie oraz wszystkie efekty (może ich być np. 5) W jaki sposób ułożyć zapytanie? Bo dostaje tylko jeden efekt. Z góry dzięki za pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No a jakie ty masz zapytanie?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No i zapytanie jest ok. Widac zle odbierasz dane, skoro dostajesz tylko jeden rekord. To zapytnie zwraca tyle rekordow ile masz efektow dla danego zdjecia
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
No tak, jak wrzucę w pętle to dostaje więcej, ale jak to teraz obrobić? Nie da się zrobić tak żeby efekty były w dodatkowej tablicy??
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jak chcesz efekty wydzielic do oddzielnej tablicy to nie ma bata, musisz to zrobic sam w php (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
No chyba tak, bo np. chcąc dostać nazwę zdjęcia muszę odwołać się do zerowego elementu: $zdjecie[0]['nazwa'] itd.
Muszę chyba jakiś paser do tego napisać. Dzięki za pomoc (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Albo rozbić to na 2 zapytania: 1 do pobrania informacji o zdjęciu, 2 do pobrania informacji o efektach. Mniejsza ilość zapytań nie zawsze jest lepsza. Przykładowo tutaj w wyniku otrzymasz nadmiarowość danych: zdublowane dane dotyczące zdjęcia. Dla kilku rekordów może nie jest to nic strasznego, ale dla większych zbiorów różnica może być wyraźnie odczuwalna. Ja bym to ciachnął 2 zapytaniami.
|
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat No chyba tak, bo np. chcąc dostać nazwę zdjęcia muszę odwołać się do zerowego elementu: $zdjecie[0]['nazwa'] itd. Kazdy rekord zawiera nazwe zdjecia a nie tylko pierwszy. Rekordy roznią sie tylko efektami. Cytat Albo rozbić to na 2 zapytania: 1 do pobrania informacji o zdjęciu, 2 do pobrania informacji o efektach. Mniejsza ilość zapytań nie zawsze jest lepsza. Przykładowo tutaj w wyniku otrzymasz nadmiarowość danych: zdublowane dane dotyczące zdjęcia. Dla kilku rekordów może nie jest to nic strasznego, ale dla większych zbiorów różnica może być wyraźnie odczuwalna. Ja bym to ciachnął 2 zapytaniami. Nie widze sensu tutaj dwoch zapytan, ktore bedą i tak wolniejsze od tego jednego.A jesli tak bardzo boli nadmiarowosc danych, to mozna przeciez uzyc GROUP BY oraz GROUP_CONCAT a wowczas wszystkie efekty i zdjecie będą w jednym rekordzie. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, to mam jeszcze jeden problem. Będę chciał wyświetlić 100 zdjęć i każde ma od 3 do 6 efektów i jak to udźwignąć? Bo w ten sposób będę miał zwrócone 100 * (3,6) tablic?
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://nospor.pl/grupowanie-wynikow.html
Masz tam tez przyklad z GROUP BY. Tak wiec do wyboru do koloru (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Okej, dzięki przyglądnę się temu. A miałbyś czas napisać samego sql do tego przykładu? Bo jednak na swoim kodzie człowiek szybciej łapie.
|
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Sql przeciez juz masz.... wystarczy ze wywalisz WHERE, ktore ogranicza cie tylko do jednego zdjecia.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie działa mi to za bardzo :/
|
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jak chcesz pomocy, to pisz pelnymi zdaniami. "Nie dziala" to mowią dzieci w zlobki a nie programisci
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
No okej, nie rozumiem po prostu niektórych rzeczy w tym zapytaniu, nie stosujesz nigdzie Aliasów typu p a do nich się odwołujesz, popraw mnie jak się mylę.
|
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jak to nie definiuje aliasu p.....
A to: left join product p to niby co to jest? Czytasz w ogole co tam jest napisane czy tylko czekasz az zrobie to za ciebie? |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 20.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Okej, no tak, chodź użycie AS byłoby bardziej czytelne. Z punktu optymalizacji to lepiej skorzystać z group() czy obrobić to w php?
|
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat chodź użycie AS byłoby bardziej czytelne Czytanie a nie udawanie ze sie czyta tez byloby o wiele czytelniejsze... Masz tam prosty, krotki sql i masz problem ze znalezieniem aliasu P. To naprawde nie jest spowodowane brakiem AS.Cytat Z punktu optymalizacji to lepiej skorzystać z group() czy obrobić to w php? Nie wiem. Ja osobiscie rzadko kiedy korzystam z GROUP w takich sytuacjach
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 17:05 |