Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Liczenie koszyka, Jak zliczyć kwotę do zapłaty koszyka
pawel06281990
post
Post #1





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Witam napisałem zliczanie koszyka ile klient ma zapłacić za wybrany towar ale kwoty wychodzą stanie duże pokaże przykład

mam tak wybrane dwa towary za sztukę jest 3.99 zł
i wybrałem jeden towar o wartości 149.00 zł

wynik powinien wyjść 156.98 zł

a mam wynik 458.97 zł

A tak wygląda kod którym to zliczam

  1. $kosz_cena = $wpdb->get_row("SELECT SUM(opieka_kosz_ilosc ) AS ilosc , SUM(opieka_kosz_cena) AS kwota FROM ".OPIEKA_KOSZ_TABLE." WHERE user_id=".$current_user->ID." ORDER BY opieka_kosz_ilosc DESC");
  2.  
  3.  
  4. $doliczanie=$kosz_cena->ilosc*$kosz_cena->kwota;
  5.  
  6. $kwota =number_format($doliczanie, 2, ".", "");


co jest nie tak (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 883
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


W jaki typ masz kolumnach:
- opieka_kosz_ilosc
- opieka_kosz_cena

oraz co w rzeczywistości pokazuje ci się co zwraca zapytanie?

  1. print_r ([$doliczanie, $kosz_cena->ilosc, $kosz_cena->kwota]);

Go to the top of the page
+Quote Post
pawel06281990
post
Post #3





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Cytat(Tomplus @ 22.05.2021, 12:29:51 ) *
W jaki typ masz kolumnach:
- opieka_kosz_ilosc
- opieka_kosz_cena

oraz co w rzeczywistości pokazuje ci się co zwraca zapytanie?

  1. print_r ([$doliczanie, $kosz_cena->ilosc, $kosz_cena->kwota]);


Mam taki wynik
Array ( [0] => 458.97 [1] => 3 [2] => 152.99 )

A w bazie mam taki typ w bazie danych koszyk

opieka_kosz_ilosc varchar(100)
opieka_kosz_za_sztuke varchar(6)

Go to the top of the page
+Quote Post
gino
post
Post #4





Grupa: Zarejestrowani
Postów: 324
Pomógł: 52
Dołączył: 18.02.2008

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


Varchar, naprawdę? Przecież dla kwoty jest typ decimal, np . decimal(9,2)
Albo typ int, gdzie możesz przechowywać kwotę w groszach. Jak sama nazwa wskazuje varchar jest do przechowywania typu znakowego char bez dopełnienia do zadeklarowanego rozmiaru. Ilość też, każdą jednostkę szt, m3, m2 itd można przechować w decimal.
Go to the top of the page
+Quote Post
emillo91
post
Post #5





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

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


A po co mnożysz te wartości? Jeżeli przechowujesz informacje o wybranym produkcie w bazie to wystarczy samo sumowanie. Coś mi się wydaje, że nie podajesz wszystkich informacji bo po wyniku (3.99 + 149.00)*3 wychodzi ten nieoczekiwany a z tej logiki wynik powinien wyjść 467,94.
Go to the top of the page
+Quote Post
pawel06281990
post
Post #6





Grupa: Zarejestrowani
Postów: 298
Pomógł: 0
Dołączył: 10.01.2014

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


Próbami i błędami doszłem do tego ale dzięki za pomoc (IMG:style_emoticons/default/snitch.gif)
Go to the top of the page
+Quote Post
Tomplus
post
Post #7





Grupa: Zarejestrowani
Postów: 1 883
Pomógł: 231
Dołączył: 20.03.2005
Skąd: Będzin

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


No to powiedz, co tam było źle?
Go to the top of the page
+Quote Post

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: 17.09.2025 - 11:52