Nejste přihlášen/a.
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);;
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.
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).
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.);;
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?
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.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.