Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Jak wyliczyć wyniki z zapytania
dopal
post 11.02.2013, 10:53:13
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. <td width="25%">atrybut H '.$questionmark.gifquestionmark.gifquestionmark.gif.'</td>
  7. <td width="25%">atrybut R '.$questionmark.gifquestionmark.gifquestionmark.gif.'</td>
  8. <td width="25%">atrybut A '.$questionmark.gifquestionmark.gifquestionmark.gif.'</td>
  9. ';
  10. ?>

W jaki sposób można to zrobić, proszę o jakieś podpowiedzi i wskazówki.
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 10:36