![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 0 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam dwie tabele w bazie ( nie wypisuje wszystkich pól, tylko te co są istotne przy moim problemie): tab.a1 ID | nazwa | numer| 1 | cytryna| 1001| 2 |kiwi | 1002| 3 |banan | 1003| 4 |jabłko | 1004| itd. tab.b1 ID |nr2 | czas | atrybut| 1 | 1001| 20130105 | h| 2 | 1001 | 20130108 | r | 3 | 1001| 20130110 | h| 4 |1002 | 20130106 | h| 5 | 1002| 20130109 | h| 6 |1003 | 20130114 | r| 7 |1003 |20130115 | r| 8 |1004 |20130110 | a| Pierwsza część działa mi prawidłowo, otrzymuję wszystkie wyniki spełniające zapytanie
w wyniku otrzymuję taką tabelkę: 1.cytryna 1001 h 2.cytryna 1001 r 3.kiwi 1002 h 4.banan 1003 r 5.jabłko 1004 a Teraz chciałbym by nastapiło zliczenie wg takiego rozwiązania po atrybutach. Jeśli dana produkt ( np. cytryna ) wystepuje w dwóch wynikach z różnymi atrybutami ( h, r ) to chcę by to było zliczone jako h i by w tabeli poniżej nastepowało sumowanie po atrybutach (analogicznie sobie już pozostałe ustawienia dopasuję ) czyli w tym przypadku: atrybut h - 2 ( czyli cytryna i kiwi ) atrybut r - 1 ( czyli banan) atrybut a - 1 (czyli jabłko )
W jaki sposób można to zrobić, proszę o jakieś podpowiedzi i wskazówki. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dobra, zmiana algorytmu. Może trochę dłuższy, ale prostrzy.
Petla główna jak do tej pory. Przed pętlą inicjalizujesz tablicę $element = array() W petli: jesli atrybut = h, $element[$nazwa_elementu] = h jesli atrybut = r and (nieisntieje $element[$nazwa_elementu] or $element[$nazwa_elementu]!=h), $element[$nazwa_elementu] = r jesli atrybut = p and (nieisntieje $element[$nazwa_elementu] or $element[$nazwa_elementu]!=h and $element[$nazwa_elementu]!=r), $element[$nazwa_elementu] = p jesli atrybut = a and (nieisntieje $element[$nazwa_elementu] or $element[$nazwa_elementu]!=h and $element[$nazwa_elementu]!=r and $element[$nazwa_elementu]!=p), $element[$nazwa_elementu] = a Dzieki temu bedziesz mial tablice elementow, z wpisem, który gdzie nalezy. Teraz inicjalizujesz 4 tablice h r p a po czym lecisz po tablicy elementów $element foreach ($element as $el => $atr){ //a tutaj w zaleznosci czy $atr jest rowny h r p czy a to dodajesz $el do tablicy h r p lub a } |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 18:03 |