![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 31.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym zsumować przesłane post'em wartości ceny radiobutton'ów i checkbox'ów. W moim przypadku są to parametry, kolory_n, kolory_t (radio) i akcesoria (checkbox'y).
Struktury tabel: parametry: id | checked | model | moc | pojemnosc | przyspieszenie | zuzycie | cena kolory_n: id | checked | kolor | opis | cena kolory_t: id | checked | kolor | opis | cena akcesoria: id | akcesoria | cena wszystkie pola cena są float(10,2) zapytanie mysql:
Pętla w php:
I teraz przykład co się z tym dzieje: Zaznaczam w poprzednim formularzu np:
W wyniku wyświetla mi ciąg sum, zamiast poprawnej kwoty, np. tu wyświetli tak:
czyli pierwsze 6 cyfr to cena parametry, drugie 6 cyfr to cena parametry+kolory_n, trzecie 6 cyfr to cena parametry+kolory_n+kolory_t, czwarte 6 cyfr to cena parametry+kolory_n+kolory_t+akcesoria Problem w tym, żeby wyświetlał tylko te "czwarte 6 cyfr", czyli w tym przypadku 128717 Pewnie błąd jest prosty, ale nie mogę go znaleźć, proszę o pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
zmien
na
nie mam mozliwosci treraz sprawdzic ale mysle ze to ten blad Ten post edytował remik09 4.04.2008, 17:10:51 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 31.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Niestety, to nic nie zmienia
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Odpal sobie to zapytanie w phpMyAdminie i zobacz co zwraca. Jeśli się nie mylę to oczekujesz jednego wiersza wyniku z czterema polami, a dostajesz cztery wiersze - każdy z jednym polem.
Poczytaj też trochę o UNION i podzapytaniach -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 31.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
To zapytanie zwraca w formie stringu, np: 115300118142124897128717, czyli UNION jakgdyby doklejał kolejne działania, zamiast zwrócić tą sumę ostateczną 128717 i to jeszcze w formie float (tak jest w bazie, czyli 128717.00). Nadal nie wiem jak to zrobić...
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
To zapytanie zwraca w formie stringu, np: 115300118142124897128717 Ja się nie pytam co zwraca kod PHP, tylko twoje zapytanie. Jeśli masz takie opory przed wklejeniem zapytania do phpMyAdmina to odpal poniższy kod:
PS. Jeśli faktycznie twoja baza zwraca jeden wiersz danych z jednym polem o treści: "115300118142124897128717" to pierwszy raz spotykam się z takim działaniem UNION ;] Ten post edytował Kicok 5.04.2008, 12:34:08 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 31.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie zwraca:
Ile wierszy zwróciło zapytanie: 4 Co zwraca zapytanie: cenap 115300.00 2842.00 6755.00 3820.00 I teraz trzeba te 4 liczby jakoś zsumować... ale jak ? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Kicok 5.04.2008, 13:03:36 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 31.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ile wierszy zwróciło zapytanie: 4
Co zwraca zapytanie:128717 cenap 115300.00 2842.00 6755.00 3820.00
Troche to dziwne że ta suma 128717 nie jest zwracana we float'cie, tak jak jej składniki... czy da się to poprawić ? Później tą sumę będę musiał wsadzić do bazy |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat Troche to dziwne że ta suma 128717 nie jest zwracana we float'cie Jak to nie jest? Owszem, teraz widzisz zwykły INT, bo ceny w bazie danych zawsze kończą ci się: ".00". Zmień sobie na chwilę 115300.00 na 115300.55 to zobaczysz że działa jak należy. Ten "zaokrąglony float" możesz spokojnie używać do obliczeń i wsadzania do bazy. A jak będziesz go chciał wyświetlić, to number_format" title="Zobacz w manualu PHP" target="_manual albo printf" title="Zobacz w manualu PHP" target="_manual/sprintf" title="Zobacz w manualu PHP" target="_manual Ten post edytował Kicok 5.04.2008, 13:23:24 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 31.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jak to nie jest? Owszem, teraz widzisz zwykły INT, bo ceny w bazie danych zawsze kończą ci się: ".00". Zmień sobie na chwilę 115300.00 na 115300.55 to zobaczysz że działa jak należy. Ten "zaokrąglony float" możesz spokojnie używać do obliczeń i wsadzania do bazy. A jak będziesz go chciał wyświetlić, to [manual\]number_format\[/manual\] albo [manual\]printf\[/manual\]/[manual\]sprintf\[/manual\] No faktycznie ![]() ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:37 |