Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyliczanie sumy w pętli z dwóch tabel
kda
post
Post #1





Grupa: Zarejestrowani
Postów: 75
Pomógł: 2
Dołączył: 29.07.2009

Ostrzeżenie: (0%)
-----


Witam,

Proszę o radę jak mógł bym wyświetlić zawartość tabeli tab_jeden jednocześnie pobierając kwoty z tab_dwa, strukturę mam taką:

tab_jeden
ID | NAZWA | itd...
1 | Przekładnia |
2 | Koło zębate |
3 | Tasmociąg |


tab_dwa
ID | ID_POW | JM | ILOSC |
1 | 1 | szt | 10
2 | 1 | szt | 25
3 | 2 | mb | 5
4 | 1 | szt | 100
5 | 3 | op | 5
6 | 2 | mb | 10
7 | 3 | mb | 1
8 | 1 | mb | 1
9 | 2 | mb | 15

ID - to unikatowy nr pozycji
ID_POW - jest to nr przypisania pozycji do tabeli tab_jeden czyli jak jest np. 2 to dotyczy pozycji Koło zębate
JM - jednostka miary
ILOSC - ilość jaka jest przyjęta do pozycji

Co chciał bym uzyskać, mianowicie wyświetlenie na stronie tabeli tab_jeden w formie
Lp , Nazwa pozycji , Ilość na stanie ,

edit:
tak opwinien wyświetlić tabele

1 , Przekładnia , 136szt
2 , Koło zębate , 30szt
3 , Taśmociąg , 6szt

a wyświetla tak:

1 , Przekładnia , 136szt
2 , Koło zębate , 166szt (tutaj ma być 30 ale dodaje wartość z wiersza powyżej czyli 30+136)
3 , Taśmociąg , 172szt (analogicznie jak wyżej powinno być 6 a robi 166 + 6)
itd...

i problem mam z policzeniem i wyświetleniem sumy pozycji, jeżeli w tabeli tab_dwa mam tylko jedną pozycję powiązaną z tab_jeden nie ma problemu ale schody zaczynają się gdy przyjęć jest więcej niż jedno.

Pierwsze co to sprawdzam ile mam przyjęć w tab_dwa dla konkretnej pozycji z tab_jeden
  1. $wynik_szcz_mag = mysql_query ("SELECT * FROM tab_dwa where id_pow='$id' AND lokalizacja='$przypisany_magazyn_uzytkownika' ;");
  2. $ile_pozycji_do_zliczenia = mysql_num_rows($wynik_szcz_mag);

jeżeli jest więcej niż jeden to:
  1. if($id == $id_pow AND $ile_pozycji_do_zliczenia > 1 ){//jezeli jest przyjete wiecej niz 1 to sumuje pozycje
  2. $stan_suma+=$faktyczny_stan; // i tu sie zapetla i liczy suma do sumy z poprzenimi liniami !!!!!!!!!!!!!
  3. $ilosc_jest = $stan_suma;
  4. }

I to mi działa prawidłowo tylko przy pierwszej wyświetlonej linii, przy kolejnych suma jest wyświetlana rosnąco, czyli nie zlicza każdej linii z osobna tylko dodaje to co jest w linii + to co jest w linii powyżej, oczywiście ten kod leci w pętli.

Ten post edytował kda 19.04.2012, 12:26:59
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kda
post
Post #2





Grupa: Zarejestrowani
Postów: 75
Pomógł: 2
Dołączył: 29.07.2009

Ostrzeżenie: (0%)
-----


@adamec
edytowałem mój post o wyświetlanie tabeli może teraz będzie troszkę jaśniej

@adamec
coś mi ruszyło, jak przeczytasz moje pytanie pewnie się uśmiejcesz, ale mój poziom jest na prawdę niski i cały czas się uczę, mam na chwilę obecną zrobione tak:
  1. $result55 = mysql_query ("SELECT pozycje.id, pozycje.nazwa, pozycje.producent, pozycje.jm, pozycje_szczegoly.ilosc FROM `pozycje`, `pozycje_szczegoly` WHERE pozycje.id = pozycje_szczegoly.id_ GROUP BY pozycje_szczegoly.id_;");
  2.  
  3. print "<TABLE BORDER=1 cellspacing=1 cellpadding=1 width=100%>";
  4. while ($row = mysql_fetch_array($result55)) {
  5.  
  6. print '<TR><TD>'.$row["id"].'</TD><TD>'.$row["nazwa"].'</TD><TD>'.$row["ilosc"].'</TD></TR>';
  7. }

Wyświetla mi id poz, nazwę , oraz ilość (oczywiście nie sumy)
i teraz pytanie, nie bardzo rozumiem co to jest za parametr A oraz B i jak zmodyfikować moje powyższe zapytanie żeby sumowało
  1. SELECT A.NAZWA, SUM(B.ILOSC)


Zapomniałem dodać że jak dodam parametr SUM
  1. $result55 = mysql_query ("SELECT pozycje.id, pozycje.nazwa, pozycje.producent, pozycje.jm, SUM(pozycje_szczegoly.ilosc) FROM `pozycje`, `pozycje_szczegoly` WHERE pozycje.id = pozycje_szczegoly.id_ GROUP BY pozycje_szczegoly.id_;");

to ilość znika w wyświetlonej tabeli


Ten post edytował kda 19.04.2012, 14:19:56
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 08:49