Php => sql

Od: Datum: 25.11.16 15:54 odpovědí: 5 změna: 25.11.16 21:06
avatar

Nějak jsem se ztratil a nemojus tím hnout.

Násobím všechny položky v databázi desetinou, ale když chci položky vrátit zpět, výsledek je jiný.

V databázi jsou položky na 6 desetinných míst.

$value je desetinné číslo např. 0.04.

Potřebuji každý záznam vynásobit $value.

$sql = UPDATE `._DB_PREFIX_.product` SET `price`=ROUND((price+(price * .$value.)),6);;


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Od: ctenar
Datum: 25.11.16 17:43

Jsem se v těch zpětných tikách a tečkách nějak ztratil.

Když němůžeš najít chybu, tak to rozlož na elementární kroky s konkrétníma číslama a pozoruj, co ještě funguje a co už ne a pak to zase postupně skládej dohromady.

UPDATE product SET price=2

pak

UPDATE product SET price=2*price

UPDATE product SET price=(1+0.1)*price

UPDATE product SET price=ROUND(price,3)

atd.

Ohodnoceno: 2x
 
Datum: 25.11.16 18:46
avatar
Přesně.
Děkuji
Od: ctenar
Datum: 25.11.16 19:23

když chci položky vrátit zpět, výsledek je jiný
Jak to čteš? Ujisti se, že to opravdu čteš nově z té databáze a ne třeba jen jako refresh z cache prohlížeče (když nemáš nastavené "expires" pro tu stránku).

Ohodnoceno: 0x
 
Datum: 25.11.16 20:04
avatar

V jednom sloupci wholesale_price mám pevné ceny se kterými nehýbu.

$sql = UPDATE `._DB_PREFIX_.product` SET `price`=(wholesale_price *.$value.);;
$sql .=UPDATE `._DB_PREFIX_.product_shop` SET `price`=(wholesale_price *.$value.);;

Od: ctenar
Datum: 25.11.16 21:06

Myslel jsem to čtení (kontrolu provedených změn) po UPDATE. Jestli to kontroluješ přes web, tak se ti mohou ukazovat nakešované (původní) hodnoty, i když v databázi byly už změné. Proto si můžeš myslet, že ti ten UPDATE nefunguje.

Ty tvoje příklady jsou z PHP skriptu? Proč je tam takových uvozovek, dvojitých středníků a teček? Bez nich to nefunguje?

Ohodnoceno: 0x
 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.