Forum Coders' city Strona Gwna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UytkownicyUytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj si, by sprawdzi wiadomociZaloguj si, by sprawdzi wiadomoci   ZalogujZaloguj 

Potrzebuj szybkiej odpowiedzi na moje pytanie... Zasady

Dodawanie cen w p?tli - b??d



 
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> PHP
Zobacz poprzedni temat :: Zobacz nastpny temat  
Autor Wiadomo
nillvo



Doczy: 10 Cze 2009
Posty: 67

PostWysany: Pon Kwi 09, 2018 11:21 am  OP    Temat postu: Dodawanie cen w p?tli - b??d Odpowiedz z cytatem Pisownia

Witam,
Pisz?, gdy? problem pozornie banalny od kilku dni nie daje si? rozwi?za?. Nie jestem w stanie poprawnie doda? cen. W bazie maj? one tak? posta?:

1 174,00
2 853,60
1 881,90

Prbowa?em na r?ne sposoby - wynik jakie daje kod to 4. Co gorsza, prbowa?em usun?? spacj? - w celu eliminacji b??du (wida? dodaje tylko pierwsz? cyfr?) - ale si? nie da (trim, preg, replace - nie dzia?aj?).

Kod:

        if ($pobierz->num_rows > 0) {
            while($row = $pobierz->fetch_assoc()) {
                $IDD = $row['NUMER_ZAMOWIENIA'];
        $KASA = pobierz_dane_z_bazy("SELECT * FROM um_zamowienia WHERE ID='$IDD' AND STATUS <> 'oferta' AND STATUS <> 'wp?ata'","KOSZT");
                $KASA = str_replace(' ', '', $KASA); //nie dzia?a
                $TEMP = preg_replace('/\s+/', '', $KASA); //nie dzia?a
                $TEMP = trim($TEMP); //nie dzia?a
                echo $TEMP.','; // efekt przyk?adowo: 1 174,00 (ze spacj?!)
    $value += (float)$TEMP;
            }



$value zwraca wynik 4.
Prbowa?em z (string) albo (float), (double) Efekt ten sam. Za?amka.
W jaki sposb poprawnie doda? w p?tli liczby w tym formacie?

1 174,00
2 853,60
1 881,90
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Garf



Doczy: 25 Maj 2005
Posty: 3607
Skd: Rzeszw

PostWysany: Pon Kwi 09, 2018 1:03 pm      Temat postu: Odpowiedz z cytatem Pisownia

Ech...
Primo - przecinek jest u?ywany do zapisu liczb z u?amkiem tylko w niektrych krajach. W pozosta?ych u?ywa si? kropki - i tutaj powiniene? jej u?y? zamiast przecinka.
Secundo - nie pro?ciej by?oby zrobi? SUM() w SQL'u?
Tertio - nie wiadomo w jaki sposb tworzona jest warto?? wynikowa funkcji pobierz_dane_z_bazy(). Mo?e lepiej tutaj poprawi? zwracan? warto?? ni? bawi? si? z tym p?niej?

i dziwne, u mnie dzia?a:
Kod:
$ php
<?php
$KASA = '1 174,33';
$KASA = str_replace(' ', '', $KASA); //nie dzia?a
$TEMP = preg_replace('/\s+/', '', $KASA); //nie dzia?a
$TEMP = trim($TEMP); //nie dzia?a
echo $TEMP."\n";
$value = (float)$TEMP;
echo $value."\n";

1174,33
1174



Nie wiemy jaka wersja PHP, jakie ?rodowisko, czy nie ma ogranicze? w dozwolonych funkcjach...

_________________
Internet nadal „nic nie rozumie”, ?adnego odkrycia, cho?by od niego zale?a? los ?wiata,
ale nadanego w egzotycznym j?zyku, nie odr?ni od nieco mniej wa?nej wie?ci,
?e u ciotki w placku z jab?kami zrobi? si? w piekarniku zakalec.
Stanis?aw Lem
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
nillvo



Doczy: 10 Cze 2009
Posty: 67

PostWysany: Pon Kwi 09, 2018 1:54 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Dzi?ki za odpowied?. Pomog?a zmiana typu zmiennej w bazie na double, zamiana przecinek na kropki (niestety system ci?gnie dane z nieszcz?snej OPTIMY, a tam format cen zawiera przecinki). Teraz sumuje za pomoc? SUM i wszystko ?miga. Dzi?ki za pomoc :)
Powrt do gry
Zobacz profil autora Wylij prywatn wiadomo
Wywietl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Gwna -> PHP Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Moesz pisa nowe tematy
Moesz odpowiada w tematach
Nie moesz zmienia swoich postw
Nie moesz usuwa swoich postw
Nie moesz gosowa w ankietach
Moesz dodawa zaczniki na tym forum
Moesz pobiera pliki z tego forum




Debug: strone wygenerowano w 0.19117 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |