Nejste přihlášen/a.

Přihlásit se do poradny

 

Php => sql

Od: danten* odpovědí: 5 změna:

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);;

 

 

5 odpovědí na otázku
Řazeno dle hodnocení

 

 

ctenar*
hodnocení

2x

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.

danten*
hodnocení

Přesně.
Děkuji
ctenar*

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).

danten*
hodnocení

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.);;

ctenar*

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?

 

 


 

 

 

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.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]