Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Jak wyliczyć wyniki z zapytania
dopal
post
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

  1. <?php
  2.  
  3. $query="SELECT * FROM a1 inner join b1 where numer=nr2 and czas2 between '20130101' AND '20130115' group by nazwa, atrybut";
  4.  
  5. $result=mysql_query($query) or die( odbc_error());
  6. $ilosc = mysql_num_rows($result);
  7.  
  8. $i = 0;
  9. while( $set = mysql_fetch_assoc( $result)){
  10. $i++;
  11.  
  12. $wynik = $i%2;
  13. if($wynik == "0"){
  14. $kolor = "white";}
  15. else {
  16. $kolor = "lightgreen";
  17. }
  18. echo '<tr bgcolor='.$kolor.'><td width="5%">'.$i.'.</td>
  19. <td width="25%">'.$set['nazwa'].'</td>
  20. <td width="12%">'.$set['nr2'].'</td>
  21. <td width="12%">'.$set['atrybut'].'</td>
  22. </tr>';
  23.  
  24. }?>

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 )

  1.  
  2. //nie wiem w jaki sposób osiągnąć to co wyżej opisałem.
  3.  
  4. echo ' <tr bgcolor='.$kolor.'><td width="5%">1.</td>
  5. <td width="25%">'.$ilosc.'</td>
  6. ';
  7. ?>

W jaki sposób można to zrobić, proszę o jakieś podpowiedzi i wskazówki.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Chyba właśnie zdurniałem..... to niby co my do tej pory robiliśmy? Przecież to jest właśnie to co do tej pory robiliśmy, to co napisałeś, że już działa.
Go to the top of the page
+Quote Post

Posty w temacie
- dopal   [MySQL][PHP]Jak wyliczyć wyniki z zapytania   11.02.2013, 10:53:13
- - nospor   Tworzysz tyle tablic ile masz atrybutów. Lecisz w...   11.02.2013, 13:15:06
- - dopal   kombinuje jak to zroić, ale mi niestety nie wychod...   11.02.2013, 14:15:28
- - mmmmmmm   Podałeś, co masz na wejściu. Pokaż wyjście, a poka...   11.02.2013, 19:34:37
- - dopal   Po przerobieniu kod wygląda jak poniżej, mam jedna...   12.02.2013, 08:25:57
- - nospor   @dopal algorytm co ci podałem miałes robić w jedne...   12.02.2013, 09:09:19
|- - dopal   Cytat(nospor @ 12.02.2013, 09:09:19 )...   12.02.2013, 09:15:23
- - nospor   To nie ma żadnej różnicy. Petla do pobierania dany...   12.02.2013, 09:18:25
- - dopal   [PHP] pobierz, plaintext ?php$x=0;while($set=o...   12.02.2013, 09:43:26
- - nospor   Po co te FOEREACH w głównej petli? Po co to: ...   12.02.2013, 09:53:34
- - dopal   Nie wiem jak to ma byc, możesz to konkretnie podać...   12.02.2013, 10:10:03
- - nospor   Z Twojego opisu (z tego w temacie i z tego na PW) ...   12.02.2013, 10:21:15
- - dopal   Tak. Element może być np. 3 razy w h, p, r - wtedy...   12.02.2013, 10:26:58
- - nospor   Dobra, zmiana algorytmu. Może trochę dłuższy, ale ...   12.02.2013, 10:38:01
- - dopal   [PHP] pobierz, plaintext $element = array(...   12.02.2013, 10:55:27
- - nospor   NIe.... Nie: $element['ODDNR1'] = H;...   12.02.2013, 10:57:45
- - mmmmmmm   Wstaw odpowiednie nawiasy do SQL (WHERE), bo teraz...   12.02.2013, 11:06:42
- - dopal   No to będzie problem bo tych nazw będzie dużo. W t...   12.02.2013, 11:16:57
- - nospor   CytatNo to będzie problem bo tych nazw będzie dużo...   12.02.2013, 11:23:32
- - dopal   Pracuje jako osoba ds. organizacyjnych w służbie z...   12.02.2013, 11:28:31
- - nospor   Dziękuje. Bo juz się bałem że jako programista T...   12.02.2013, 11:33:55
- - dopal   [PHP] pobierz, plaintext $element = array(...   12.02.2013, 11:34:16
- - nospor   Moj poprzedni post i dopisek Cytata tutaj też nie ...   12.02.2013, 11:34:57
- - dopal   Programować, to ja mogę....programy w telewizorze,...   12.02.2013, 11:36:03
- - nospor   [PHP] pobierz, plaintext $element = array(...   12.02.2013, 11:40:09
- - dopal   [PHP] pobierz, plaintext  <?php$x=0;...   12.02.2013, 11:54:10
- - nospor   zamiast and używaj && - wizualnie mi to le...   12.02.2013, 11:56:06
- - dopal   Parse error: syntax error, unexpected T_WHILE in D...   12.02.2013, 12:00:11
- - Michasko   Brakuje Ci średnika przed 'while' :)   12.02.2013, 12:02:24
|- - dopal   Cytat(Michasko @ 12.02.2013, 12:02:24...   12.02.2013, 12:06:56
- - Michasko   Linijka 7 - niedomknięty nawias okrągły. Musisz za...   12.02.2013, 12:08:39
- - nospor   Literowka.... isset ma sie szybko konczyc. Tak ma ...   12.02.2013, 12:09:17
- - dopal   Czytam, tylko ja już nad tym od wczoraj siedzę, po...   12.02.2013, 12:12:39
- - nospor   $nazwaelementu = $row['ODDWNR'];...   12.02.2013, 12:17:41
|- - dopal   Cytat(nospor @ 12.02.2013, 12:17:41 )...   12.02.2013, 12:21:31
- - nospor   No ale poprawiles? Nadal print_r nic ci nie zwraca...   12.02.2013, 12:23:32
- - dopal   RE: [MySQL][PHP]Jak wyliczyć wyniki z zapytania   12.02.2013, 12:25:56
- - nospor   hm.... czy twoje nazwy elementu to liczby ala 1008...   12.02.2013, 12:29:05
- - dopal   Tak, nazwy elementu to liczby, a do tych liczb prz...   12.02.2013, 12:33:26
- - nospor   nie: $tab_h[] =$el++; a: $tab_h[] =...   12.02.2013, 12:42:21
- - dopal   I lepiej rzebyś nie pytał [PHP] pobierz, plainte...   12.02.2013, 12:45:10
- - nospor   Rozumiem, że już działa?   12.02.2013, 12:47:13
- - dopal   Wyniki otrzymuję, więc chyba jest ok. Pozstaje jes...   12.02.2013, 12:47:48
- - nospor   A w jakim celu?   12.02.2013, 12:49:48
- - dopal   To jest ten fragment co pisałem wcześniej: W tabe...   12.02.2013, 12:54:42
- - nospor   Chyba właśnie zdurniałem..... to niby co my do tej...   12.02.2013, 12:57:57
- - phpion   Nie czytałem całego wątku, ale czy zapytanie przyp...   12.02.2013, 13:06:10
- - dopal   Po części tak, ale ( może się mylę) Jesli np. kowa...   12.02.2013, 13:07:25
|- - phpion   Cytat(dopal @ 12.02.2013, 13:07:25 ) ...   12.02.2013, 13:09:59
|- - dopal   Cytat(phpion @ 12.02.2013, 13:09:59 )...   12.02.2013, 13:11:44
- - nospor   CytatJesli np. kowalski oddał w ciągu roku krew 5 ...   12.02.2013, 13:17:05
- - dopal   Ok, chyba masz rację...za duzo tego było od wczora...   12.02.2013, 13:21:24


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: 10.10.2025 - 12:54