Autor | Zpráva | ||
---|---|---|---|
Rionela Profil |
#1 · Zasláno: 16. 6. 2008, 07:27:36
Dobré ránko,
před pár dny jsem se ptala v tétu diskusi http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=75846&foru m=28&page=-1 na to, jak ukládat desetinné číslo do databáze. Přítomní mi pomohli a změnila jsem typ sloupců v databazi na float a začala používat tečku. Ale narazila jsem ted právě na oříšek, který mi nejde rozlousknout:( Dělám si takový malý internetový obchůdek a ve sčítání všech položev v košíku používám: $soucet= mysql_result(mysql_query("SELECT SUM(mnozstvi * cena) FROM kosik WHERE kos_session = '$sessio'"), 0); ale u položek, jejichž cena má číslo i za tečkou, to akceptuje jen tu část před tečkou, takto: cena je např. 2.5, množství 3 a výsledek je 6 (vezme to 2 x 3)... Problém taky je, že takto už jsem vložila do databáze požehnané množství položek a udělám cokoliv pro to, abych nemusela každou přepisovat, díky za pomoc. |
||
Taps Profil |
#2 · Zasláno: 16. 6. 2008, 09:12:01
Rionela
a jaký typ máš nastavený pro sloupec cena ? |
||
Rionela Profil |
#3 · Zasláno: 16. 6. 2008, 09:14:08
a jaký typ máš nastavený pro sloupec cena ?
z výpisu z phpmyadmin: `cena` float default '0', |
||
ShiraNai7 Profil |
#4 · Zasláno: 16. 6. 2008, 09:15:12 · Upravil/a: ShiraNai7
Rychlé řešení by bylo provádět tyto operace v prostředí PHP, kde to máš plně pod kontrolou. Něco na tento způsob:
$polozky=mysql_query("SELECT `mnozstvi`,`cena` FROM `kosik` WHERE `kod_session`='".mysql_real_escape_string($session)."'"); $soucet=0; while($polozka=mysql_fetch_array($polozky)){ $soucet+=$polozka['mnozstvi']*$polozka['cena']; } |
||
Rionela Profil |
#5 · Zasláno: 16. 6. 2008, 09:17:44
$polozky=mysql_query("SELECT `mnozstvi`,`cena` FROM `kosik` WHERE `kod_session`='".mysql_real_escape_string($session)."'"); $soucet=0; while($polozka=mysql_fetch_array($polozky)){ $soucet+=$polozka['mnozstvi']*$polozka['cena']; }
na to koukám jak na zjevení, mužete mi to prosím jen trochu nastínit, co by tyhle řádky měly umět? |
||
ShiraNai7 Profil |
#6 · Zasláno: 16. 6. 2008, 09:49:22
Rionela
Toto vybere všechny položky z košíku podle názvu session (tak to máš uložené), u každé podle množství a ceny vypočítá cenu a přičte ji k výslednému součtu. Výsledkem je celková cena všech položek uložená v proměnné $soucet. |
||
Rionela Profil |
#7 · Zasláno: 16. 6. 2008, 10:17:52
ShiraNai7
takže by tomu nemělo vadit, že mám ceny ve formátu xx.x ? |
||
ShiraNai7 Profil |
#8 · Zasláno: 16. 6. 2008, 10:31:55
Rionela
Ne, nemělo. |
||
YoSarin Profil |
#9 · Zasláno: 16. 6. 2008, 11:47:57
Rionela
Zkus sloupeček mnozstvi nastavit taky jako float, případně ko v tom dotazu na float zkonvertuj (nevím jak přesně to je, zkus místo cena*mnozstvi napsat třeba cena*(float(mnozstvi)) ) nebo tak jak píše ShiraNai7 |
||
Časová prodleva: 16 let
|
0